- Oct 28, 2008
-
-
Evan Cheng authored
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb. llvm-svn: 58309
-
Evan Cheng authored
llvm-svn: 58297
-
David Greene authored
Re-apply 55137 with fixes. llvm-svn: 58296
-
Evan Cheng authored
llvm-svn: 58294
-
- Oct 27, 2008
-
-
Ted Kremenek authored
llvm-svn: 58290
-
David Greene authored
Have TableGen emit setSubgraphColor calls under control of a -gen-debug flag. Then in a debugger developers can set breakpoints at these calls to see waht is about to be selected and what the resulting subgraph looks like. This really helps when debugging instruction selection. llvm-svn: 58278
-
David Greene authored
Add setSubgraphColor to color an entire portion of a SelectionDAG. This will be used to support debug features in TableGen. llvm-svn: 58257
-
David Greene authored
Fix PR2634. Create new virtual registers from spills early so that we can give it the same stack slot as the spilled interval if it is folded. This prevents the fold/unfold code from pointing to the wrong register. llvm-svn: 58255
-
Duncan Sands authored
(and a bunch of other node types). While there, I added a doNotCSE predicate and used it to reduce code duplication (some of the duplicated code was wrong...). This fixes ARM/cse-libcalls.ll when using LegalizeTypes. llvm-svn: 58249
-
Duncan Sands authored
worklist twice: UpdateNodeOperands could morph a new node into a node already on the worklist. We would then recalculate the NodeId for this existing node and add it to the worklist. The testcase is ARM/cse-libcalls.ll, the problem showing up once UpdateNodeOperands is taught to do CSE for calls. llvm-svn: 58246
-
Torok Edwin authored
If it is not part of a loop it is obviously invariant wrt to all loops. llvm-svn: 58240
-
Torok Edwin authored
that need it to require it by ID. llvm-svn: 58238
-
Duncan Sands authored
codegen infrastructure, by default. Please report any breakage to the mailing lists. llvm-svn: 58232
-
Nick Lewycky authored
llvm-svn: 58231
-
Evan Cheng authored
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them. llvm-svn: 58230
-
Chris Lattner authored
LargeBlockInfo, we can now dramatically simplify their implementation and speed them up at the same time. Now the code has time proportional to the number of uses of the alloca, not the size of the block. This also eliminates code that tried to batch up different allocas which are used in the same blocks, and eliminates the 'retry list' logic which was baroque and no unneccesary. In addition to being a speedup for crazy cases, this is also a nice cleanup: PromoteMemoryToRegister.cpp | 270 +++++++++++++++----------------------------- 1 file changed, 96 insertions(+), 174 deletions(-) llvm-svn: 58229
-
Chris Lattner authored
a trivial dense map. Use this in RewriteSingleStoreAlloca to avoid aggressively rescanning blocks over and over again. This fixes PR2925, speeding up mem2reg on the testcase in that bug from 4.56s to 0.02s in a debug build on my machine. llvm-svn: 58227
-
Dale Johannesen authored
150, based on llvm-test measurements. llvm-svn: 58225
-
- Oct 26, 2008
-
-
Chris Lattner authored
Thanks to Török Edwin for the awesome reduced testcase. llvm-svn: 58199
-
Evan Cheng authored
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed. llvm-svn: 58184
-
Bill Wendling authored
Patch by Frits van Bommel! llvm-svn: 58175
-
Evan Cheng authored
llvm-svn: 58174
-
- Oct 25, 2008
-
-
Dan Gohman authored
actually correspond to what their names suggest. llvm-svn: 58146
-
Dan Gohman authored
to reflect that. llvm-svn: 58145
-
Dan Gohman authored
target-independent code to target-specific code. This prevents it from running on targets that aren't using fast-isel. In addition to saving compile time, this addresses the problem that not all targets are prepared for it. In order to use this pass, all instructions must declare all their fixed uses and defs of physical registers. llvm-svn: 58144
-
Gordon Henriksen authored
llvm-svn: 58143
-
Nicolas Geoffray authored
variable is moved to the execution engine. The JIT calls the TargetJITInfo to allocate thread local storage. Currently, only linux/x86 knows how to allocate thread local global variables. llvm-svn: 58142
-
Nicolas Geoffray authored
llvm-svn: 58141
-
Oscar Fuentes authored
llvm-svn: 58133
-
Oscar Fuentes authored
llvm-svn: 58130
-
Evan Cheng authored
If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot. llvm-svn: 58129
-
Dale Johannesen authored
Prevents some more overzealous deletions (mostly in AltiVec code). llvm-svn: 58121
-
- Oct 24, 2008
-
-
Dale Johannesen authored
be saved/restored in the prolog/epilog. We need to do this iff something in the function stores into it. llvm-svn: 58116
-
Torok Edwin authored
llvm-svn: 58104
-
Torok Edwin authored
llvm-svn: 58103
-
Evan Cheng authored
llvm-svn: 58102
-
Duncan Sands authored
LHS is a foldable load, then LHS and RHS are swapped and SetCCOpcode is changed to SETUGT. But the later code is expecting operands to be the wrong way round for SETUGT, but they are not in this case, resulting in an inverted compare. The solution is to move the load normalization before the correction for SETUGT. This bug was tickled by LegalizeTypes which happened to legalize the testcase slightly differently to LegalizeDAG. llvm-svn: 58092
-
Cedric Venet authored
Modify the cmake build system so that if it doesn't find bison, it will use the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express. llvm-svn: 58090
-
Nick Lewycky authored
llvm-svn: 58075
-
Evan Cheng authored
llvm-svn: 58072
-