- Nov 11, 2010
-
-
Jakob Stoklund Olesen authored
superceded by SplitKit. llvm-svn: 118754
-
Dan Gohman authored
these points. llvm-svn: 118752
-
Dan Gohman authored
it, so that it doesn't appear to be a known size. llvm-svn: 118748
-
Jakob Stoklund Olesen authored
This is the first small step towards using closed intervals for liveness instead of the half-open intervals we're using now. We want to be able to distinguish between a SlotIndex that represents a variable being live-out of a basic block, and an index representing a variable live-in to its successor. That requires two separate indexes between blocks. One for live-outs and one for live-ins. With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays greater than any instructions inserted at the end of MBB. llvm-svn: 118747
-
Devang Patel authored
llvm-svn: 118746
-
Jakob Stoklund Olesen authored
llvm-svn: 118743
-
Jakob Stoklund Olesen authored
llvm-svn: 118742
-
Jakob Stoklund Olesen authored
constant loads. llvm-svn: 118741
-
Jim Grosbach authored
encoding bits. llvm-svn: 118738
-
Jim Grosbach authored
llvm-svn: 118736
-
Rafael Espindola authored
llvm-svn: 118733
-
Jim Grosbach authored
llvm-svn: 118732
-
Jim Grosbach authored
llvm-svn: 118730
-
- Nov 10, 2010
-
-
Dan Gohman authored
the reverse map too. This fixes seflhost build errors. llvm-svn: 118729
-
Rafael Espindola authored
llvm-svn: 118728
-
Devang Patel authored
Take care of special characters while creating named MDNode name to hold function specific local variable's info. This fixes radar 8653152. I am checking in testcase as a separate check-in. llvm-svn: 118726
-
Rafael Espindola authored
llvm-svn: 118725
-
Dan Gohman authored
for a given instruction into a helper function. llvm-svn: 118723
-
Rafael Espindola authored
llvm-svn: 118722
-
Dan Gohman authored
type is insufficient for, or incompatible with, the current query. llvm-svn: 118721
-
Nate Begeman authored
llvm-svn: 118720
-
Duncan Sands authored
Probably it should just be 1, but compromise with 3. llvm-svn: 118718
-
Dan Gohman authored
references. For example, this allows gvn to eliminate the load in this example: void foo(int n, int* p, int *q) { p[0] = 0; p[1] = 1; if (n) { *q = p[0]; } } llvm-svn: 118714
-
Rafael Espindola authored
llvm-svn: 118709
-
Jakob Stoklund Olesen authored
Whenever splitting wants to insert a copy, it checks if the value can be rematerialized cheaply instead. Missing features: - Delete instructions when all uses have been rematerialized. - Truncate live ranges to the remaining uses after rematerialization. llvm-svn: 118702
-
Andrew Trick authored
benchmarks hitting an assertion. Adds LiveIntervalUnion::collectInterferingVRegs. Fixes "late spilling" by checking for any unspillable live vregs among all physReg aliases. llvm-svn: 118701
-
Rafael Espindola authored
llvm-svn: 118699
-
Dan Gohman authored
instructions instead of hard-coding operand numbers. llvm-svn: 118698
-
Dan Gohman authored
their comments. llvm-svn: 118696
-
Duncan Sands authored
nodes can be used in loops, this could result in infinite looping if there is no recursion limit, so add such a limit. It is also used for the SelectInst case because in theory there could be an infinite loop there too if the basic block is unreachable. llvm-svn: 118694
-
Dan Gohman authored
llvm-svn: 118693
-
Dan Gohman authored
it, and to be consistent. llvm-svn: 118692
-
Jim Grosbach authored
double quoting of ObjC symbol names in constant pool entries. rdar://8652107 llvm-svn: 118688
-
Dan Gohman authored
arbitrary memory into a helper function, and adjust some comments. llvm-svn: 118687
-
Dan Gohman authored
indivudal members holding the same data, to clarify the relationship between NonLocalDepResult and NonLocalDepEntry. llvm-svn: 118686
-
Tobias Grosser authored
Store the flags needed to disable optimizations and to emit LLVM-IR depending on the version of llvm-gcc used. llvm-svn: 118684
-
Michael J. Spencer authored
llvm-svn: 118683
-
Michael J. Spencer authored
llvm-svn: 118682
-
Michael J. Spencer authored
llvm-svn: 118681
-
Duncan Sands authored
The simplifications performed here never create new instructions, they only return existing instructions (or a constant), and so are always a win. In theory they should transform (for example) %z = and i32 %x, %y %s = select i1 %cond, i32 %y, i32 %z %r = and i32 %x, %s into %r = and i32 %x, y but in practice they get into a fight with instcombine, and lose. Unfortunately instcombine does a poor job in this case. Nonetheless I'm committing this transform to make it easier to discuss what to do to make peace with instcombine. llvm-svn: 118679
-