- Apr 25, 2009
-
-
Evan Cheng authored
Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. llvm-svn: 70026
-
Bob Wilson authored
f64 types. This is not used for anything yet. llvm-svn: 70006
-
- Apr 24, 2009
-
-
Dale Johannesen authored
This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. llvm-svn: 69990
-
Bob Wilson authored
between registers and the stack may be required with the APCS ABI, but it isn't tied to using a particular version of the ARM architecture. llvm-svn: 69978
-
Bob Wilson authored
chained and "flagged" together. I also made a few changes to handle the chain and flag values more consistently. I found these problems by inspection so I'm not aware of anything that breaks because of them (thus no testcase). llvm-svn: 69977
-
Bob Wilson authored
should be bit-converted to i32, it is sufficient to list only i32 in subsequent definitions. llvm-svn: 69973
-
Rafael Espindola authored
very elegant, but neither is the tls specification :-( llvm-svn: 69968
-
Rafael Espindola authored
llvm-svn: 69967
-
Nate Begeman authored
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. llvm-svn: 69952
-
Dan Gohman authored
use ISD::EXTRACT_ELEMENT. SelectionDAG has a special fast-path for the cast of an EXTRACT_ELEMENT with a BUILD_PAIR operand, for the common case. llvm-svn: 69948
-
Sanjiv Gupta authored
llvm-svn: 69946
-
Dan Gohman authored
utility function. llvm-svn: 69937
-
Dan Gohman authored
but this change makes the code more general and easier to adapt for new purposes. llvm-svn: 69935
-
Dan Gohman authored
llvm-svn: 69934
-
- Apr 23, 2009
-
-
Evan Cheng authored
llvm-svn: 69919
-
Evan Cheng authored
llvm-svn: 69918
-
Dan Gohman authored
with the persistent insertion point, and change IndVars to make use of it. This fixes a bug where IndVars was holding on to a stale insertion point and forcing the SCEVExpander to continue to use it. This fixes PR4038. llvm-svn: 69892
-
Sanjiv Gupta authored
Banksel immediate constant will always immediately follow the GA/ES, so scan an insn from beginnin to find out the banksel operand. llvm-svn: 69883
-
Nick Lewycky authored
whitespace in the same file. llvm-svn: 69870
-
Dan Gohman authored
memory operand tuples. This doesn't ever come up in normal code however. llvm-svn: 69848
-
Evan Cheng authored
llvm-svn: 69844
-
Evan Cheng authored
llvm-svn: 69842
-
Evan Cheng authored
llvm-svn: 69836
-
- Apr 22, 2009
-
-
Devang Patel authored
llvm-svn: 69816
-
Dan Gohman authored
llvm-svn: 69809
-
Dan Gohman authored
instructions in order to avoid inserting new ones. However, if the cast instruction is the SCEVExpander's InsertPt, this causes subsequently emitted instructions to be inserted near the cast, and not at the location of the original insert point. Fix this by adjusting the insert point in such cases. This fixes PR4009. llvm-svn: 69808
-
Dan Gohman authored
to better handle inserting instructions at the end of a block. llvm-svn: 69807
-
Sanjiv Gupta authored
Make the function begin label start after ther data pointer. The address of data frame for function can be obtained by subtracting 2 from the function begin label. llvm-svn: 69801
-
Owen Anderson authored
Real fix for PR3549, by using caching for predecessor counts in addition to the predecessors themselves. This halves the time to optimize the testcase, beyond what my previous patch did. llvm-svn: 69792
-
Owen Anderson authored
Use PredIteratorCache in LCSSA, which gives a 37% overall speedup on the testcase from PR3549. More improvements to come. llvm-svn: 69788
-
Chris Lattner authored
llvm-svn: 69752
-
Dan Gohman authored
practical benefit in the case of ScalarEvolution, and it's otherwise a nuisance. llvm-svn: 69749
-
Evan Cheng authored
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
-
- Apr 21, 2009
-
-
Dan Gohman authored
type to truncate to should be the number of bits of the value that are preserved, not the number that are clobbered with sign-extension. This fixes regressions in ldecod. llvm-svn: 69704
-
-
Anton Korobeynikov authored
Patch by Jay Foad! llvm-svn: 69679
-
Anton Korobeynikov authored
Patch by Jay Foad! llvm-svn: 69678
-
Duncan Sands authored
Spotted by gcc-4.5. llvm-svn: 69673
-
Rafael Espindola authored
This fixes PR4002. llvm-svn: 69672
-
Sanjiv Gupta authored
llvm-svn: 69665
-