Commit Graph

5432 Commits

Author SHA1 Message Date
Duncan Sands fe80638417 Extend eh.selector to support both catches and filters.
Drop the eh.filter intrinsic.

llvm-svn: 37875
2007-07-04 20:52:51 +00:00
Devang Patel 24f9e2cf98 Remove unused method - getIDomBlock().
llvm-svn: 37865
2007-07-04 01:11:19 +00:00
Devang Patel 67c27ceac7 Fix typo in assertion check.
llvm-svn: 37864
2007-07-04 01:05:22 +00:00
Dan Gohman 32c3c19bed Remove declarations for code no longer in the tree, to avoid confusion.
llvm-svn: 37840
2007-07-02 15:06:26 +00:00
Dan Gohman 1eb8ed47f5 Add explicit keywords.
llvm-svn: 37839
2007-07-02 14:53:37 +00:00
Devang Patel 88197332e7 Add loop info verification mechanism.
llvm-svn: 37822
2007-06-29 23:13:42 +00:00
Dan Gohman 2e5e277cb3 Add an explicit keyword. Thanks Chris!
llvm-svn: 37819
2007-06-29 22:16:25 +00:00
John Criswell 2660cef6d7 Convert .cvsignore files
llvm-svn: 37801
2007-06-29 16:35:07 +00:00
David Greene 451d1a6ecd Fix misue of iterator pointing to erased object. Uncovered by
_GLIBCXX_DEBUG.

llvm-svn: 37793
2007-06-29 02:45:24 +00:00
Dan Gohman 7867793aff Add new TargetLowering code to provide the final register type that an
illegal value type will be transformed to, for code that needs the
register type after all transformations instead of just after the first
transformation.

Factor out the code that uses this information to do copy-from-regs and
copy-to-regs for various purposes into separate functions so that they
are done consistently.

llvm-svn: 37781
2007-06-28 23:29:44 +00:00
Dan Gohman 5f1a2052cd Add a default parameter to a SmallVector constructor to allow it to
be called with just an initial length value, just like in std::vector.

llvm-svn: 37779
2007-06-28 20:27:24 +00:00
Devang Patel 4857576f75 Remove unnecessary comments.
llvm-svn: 37774
2007-06-28 02:11:54 +00:00
Devang Patel 7d4520f8ad Handle the case when block dominates itself.
llvm-svn: 37773
2007-06-28 02:07:08 +00:00
Devang Patel c445982764 Remove ETForest.
llvm-svn: 37765
2007-06-27 20:53:52 +00:00
Dan Gohman 3b62d7265d Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.
llvm-svn: 37758
2007-06-27 16:08:04 +00:00
Dan Gohman 5179f91ef0 Document the encoding of MVT::ValueType.
llvm-svn: 37757
2007-06-27 15:28:26 +00:00
Dan Gohman cab6dd8ef2 Allow DOUT to be used outside of the llvm namespace.
llvm-svn: 37753
2007-06-27 14:09:38 +00:00
Evan Cheng 2d345badea Add comment.
llvm-svn: 37741
2007-06-26 21:19:07 +00:00
Evan Cheng d8417d9199 Properly handle kills of a physical register which has sub-registers that are read by later instructions.
llvm-svn: 37739
2007-06-26 21:03:35 +00:00
Evan Cheng 2e887c0b84 Add immediate sub-registers.
llvm-svn: 37738
2007-06-26 20:59:16 +00:00
Dan Gohman 0dccdef768 Replace ?: with if statements, for clarity.
llvm-svn: 37735
2007-06-26 16:19:08 +00:00
Dan Gohman d80e8e97dc Simplify the expression for MVT::isExtendedValueType.
llvm-svn: 37733
2007-06-26 15:20:04 +00:00
Dan Gohman e36ede145c Simplify the expression for TargetLowering::isTypeLegal.
llvm-svn: 37732
2007-06-26 15:16:27 +00:00
Dan Gohman 03d2e3d735 Renumber the SimpleValueType values to fill in the hole left by
removing MVT::Vector.

llvm-svn: 37730
2007-06-26 14:28:59 +00:00
Dan Gohman e8c1e428f2 Revert the earlier change that removed the M_REMATERIALIZABLE machine
instruction flag, and use the flag along with a virtual member function
hook for targets to override if there are instructions that are only
trivially rematerializable with specific operands (i.e. constant pool
loads).

llvm-svn: 37728
2007-06-26 00:48:07 +00:00
Dan Gohman 729f3cf27a Add a convenince member function for appending strings to a module's
module-level asm string data.

llvm-svn: 37726
2007-06-26 00:38:49 +00:00
Dan Gohman a866514528 Generalize MVT::ValueType and associated functions to be able to represent
extended vector types. Remove the special SDNode opcodes used for pre-legalize
vector operations, and the special MVT::Vector type used with them. Adjust
lowering and legalize to work with the normal SDNode kinds instead, and to
use the normal MVT functions to work with vector types instead of using the
two special operands that the pre-legalize nodes held.

This allows pre-legalize and post-legalize DAGs, and the code that operates
on them, to be more consistent. Pre-legalize vector operators can be handled
more consistently with scalar operators. And, -view-dag-combine1-dags and
-view-legalize-dags now look prettier for vector code.

llvm-svn: 37719
2007-06-25 16:23:39 +00:00
Dan Gohman 309d3d51b3 Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from
TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.

llvm-svn: 37704
2007-06-22 14:59:07 +00:00
Duraid Madina 81a752aa95 check in the BigBlock local register allocator
llvm-svn: 37703
2007-06-22 08:27:12 +00:00
Owen Anderson 7c3a5513f7 Have internal df_iterator's use SmallPtrSet instead of std::set. This provides compile time speedups to any pass using df_iterator.
llvm-svn: 37694
2007-06-21 21:25:36 +00:00
Devang Patel d5258a23a5 Move code to update dominator information after basic block is split
from LoopSimplify.cpp to Dominator.cpp

llvm-svn: 37689
2007-06-21 17:23:45 +00:00
Dan Gohman 04deef3a49 Rename TargetLowering::getNumElements and friends to
TargetLowering::getNumRegisters and similar, to avoid confusion with
the actual number of elements for vector types.

llvm-svn: 37687
2007-06-21 14:42:22 +00:00
Tanya Lattner 39be2d896d Move inliner pass header file.
llvm-svn: 37664
2007-06-19 22:29:02 +00:00
Dan Gohman 32f53bbd85 Rename ScalarEvolution::deleteInstructionFromRecords to
deleteValueFromRecords and loosen the types to all it to accept
Value* instead of just Instruction*, since this is what
ScalarEvolution uses internally anyway. This allows more flexibility
for future uses.

llvm-svn: 37657
2007-06-19 14:28:31 +00:00
Dan Gohman 9e82064924 Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad
with a general target hook to identify rematerializable instructions. Some
instructions are only rematerializable with specific operands, such as loads
from constant pools, while others are always rematerializable. This hook
allows both to be identified as being rematerializable with the same
mechanism.

llvm-svn: 37644
2007-06-19 01:48:05 +00:00
Evan Cheng 7d5696860b Replace CanBeDuplicated() with a M_NOT_DUPLICABLE bit.
llvm-svn: 37642
2007-06-19 01:21:41 +00:00
Chris Lattner f401b2b4c3 add isvararg tracking to CCState
llvm-svn: 37639
2007-06-19 00:10:25 +00:00
Evan Cheng 2afd702c20 Move CorrectExtraCFGEdges() from BranchFolding.cpp to a MachineBasicBlock method.
llvm-svn: 37633
2007-06-18 22:43:58 +00:00
Tanya Lattner aab2200844 Modify annotate intrinsic to take 2 additional args: file and line number.
Fix up Annotate attribute test case.
Fix DebugFilename.c test case to look for right file name.

llvm-svn: 37632
2007-06-18 22:23:39 +00:00
Chris Lattner b4f2d8a056 add helper
llvm-svn: 37631
2007-06-18 21:50:49 +00:00
Dan Gohman 03a7e5368a Add keyword explicit.
llvm-svn: 37624
2007-06-18 14:11:31 +00:00
Evan Cheng 297d43be00 Added CanBeDuplicated(). It returns true if an instruction can be safely duplicated (e.g. during ifcvt).
llvm-svn: 37605
2007-06-15 21:13:54 +00:00
Tanya Lattner cb1b96047d Add local var annotation intrinsic.
llvm-svn: 37603
2007-06-15 20:50:54 +00:00
Evan Cheng 32312ad370 No longer needed.
llvm-svn: 37598
2007-06-15 19:05:13 +00:00
Dan Gohman cb9e09ad57 Add a SCEV class and supporting code for sign-extend expressions.
This created an ambiguity for expandInTy to decide when to use
sign-extension or zero-extension, but it turns out that most of its callers
don't actually need a type conversion, now that LLVM types don't have
explicit signedness. Drop expandInTy in favor of plain expand, and change
the few places that actually need a type conversion to do it themselves.

llvm-svn: 37591
2007-06-15 14:38:12 +00:00
Chris Lattner ce4d2dd644 m_not should match vector not
llvm-svn: 37587
2007-06-15 06:13:47 +00:00
Chris Lattner 72e3958003 add a Constant::getAllOnesValue helper function, which works on integers
AND vectors.

llvm-svn: 37586
2007-06-15 06:10:53 +00:00
Dan Gohman 5c4413120f Rename MVT::getVectorBaseType to MVT::getVectorElementType.
llvm-svn: 37579
2007-06-14 22:58:02 +00:00
Dale Johannesen 616627b002 Do not treat FP_REG_KILL as terminator in branch analysis (X86).
llvm-svn: 37578
2007-06-14 22:03:45 +00:00
Dan Gohman 4a4a8eb00e Add a target hook to allow loads from constant pools to be rematerialized, and an
implementation for x86.

llvm-svn: 37576
2007-06-14 20:50:44 +00:00