- Dec 05, 2007
-
-
Evan Cheng authored
llvm-svn: 44612
-
Evan Cheng authored
llvm-svn: 44611
-
Evan Cheng authored
llvm-svn: 44609
-
- Dec 02, 2007
-
-
Evan Cheng authored
llvm-svn: 44517
-
- Nov 29, 2007
-
-
Evan Cheng authored
llvm-svn: 44428
-
- Nov 28, 2007
-
-
Evan Cheng authored
llvm-svn: 44386
-
- Nov 17, 2007
-
-
Evan Cheng authored
When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. llvm-svn: 44198
-
- Oct 13, 2007
-
-
Evan Cheng authored
Turn this: movswl %ax, %eax movl %eax, -36(%ebp) xorl %edi, -36(%ebp) into movswl %ax, %eax xorl %edi, %eax movl %eax, -36(%ebp) by unfolding the load / store xorl into an xorl and a store when we know the value in the spill slot is available in a register. This doesn't change the number of instructions but reduce the number of times memory is accessed. Also unfold some load folding instructions and reuse the value when similar situation presents itself. llvm-svn: 42947
-
- Aug 14, 2007
-
-
Evan Cheng authored
Re-implement trivial rematerialization. This allows def MIs whose live intervals that are coalesced to be rematerialized. llvm-svn: 41060
-
- Aug 07, 2007
-
-
David Greene authored
Add a missing forward declaration. llvm-svn: 40896
-
- Aug 02, 2007
-
-
Dan Gohman authored
llvm-svn: 40757
-
- Apr 04, 2007
-
-
Evan Cheng authored
llvm-svn: 35660
-
- Mar 20, 2007
-
-
Evan Cheng authored
llvm-svn: 35208
-
- Feb 01, 2007
-
-
Chris Lattner authored
llvm-svn: 33749
-
- Dec 17, 2006
-
-
Bill Wendling authored
rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. llvm-svn: 32636
-
- Dec 07, 2006
-
-
Bill Wendling authored
now cerr, cout, and NullStream resp. llvm-svn: 32298
-
- Nov 17, 2006
-
-
Bill Wendling authored
llvm-svn: 31806
-
- Sep 05, 2006
-
-
Chris Lattner authored
actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108
-
- May 02, 2006
-
-
Chris Lattner authored
instructions in the virtregfolded map that were deleted. Because they were deleted, newly allocated instructions could end up at the same address, magically finding themselves in the map. The solution is to remove entries from the map when we delete the instructions. llvm-svn: 28041
-
- May 01, 2006
-
-
Chris Lattner authored
llvm-svn: 28039
-
- Apr 30, 2006
-
-
Evan Cheng authored
But this is incorrect if the spilled value live range extends beyond the current BB. It is currently controlled by a temporary option -spiller-check-liveout. llvm-svn: 28024
-
- Apr 22, 2005
-
-
Misha Brukman authored
llvm-svn: 21420
-
- Oct 02, 2004
-
-
Chris Lattner authored
it was a use, def, or both. This allows us to be less pessimistic in our analysis of them. In practice, this doesn't make a big difference, but it doesn't hurt either. llvm-svn: 16632
-
- Oct 01, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 16626
-
- Sep 30, 2004
-
-
Chris Lattner authored
data structures). Fix the print method to send to the right ostream, not always cerr. Delete typedefs that are only used once. llvm-svn: 16606
-
Chris Lattner authored
prune #includes, add print/dump methods, etc. No functionality changes. llvm-svn: 16604
-
- Sep 02, 2004
-
-
Reid Spencer authored
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
-
- Jul 20, 2004
-
-
Alkis Evlogimenos authored
stack slots. This is in preparation for the iterative linear scan. llvm-svn: 15032
-
- May 29, 2004
-
-
Alkis Evlogimenos authored
new one. llvm-svn: 13895
-
Alkis Evlogimenos authored
registers in the function has changed. llvm-svn: 13893
-
- Mar 02, 2004
-
-
Alkis Evlogimenos authored
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now. llvm-svn: 12062
-
- Mar 01, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 12058
-
- Feb 27, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11898
-
- Feb 25, 2004
-
-
Alkis Evlogimenos authored
to objects. llvm-svn: 11840
-
- Feb 24, 2004
-
-
Alkis Evlogimenos authored
allocator. The implementation is completely rewritten and now employs several optimizations not exercised before. For example for 164.gzip we have 997 loads and 699 stores vs the 1221 loads and 880 stores we have before. llvm-svn: 11798
-
Alkis Evlogimenos authored
register mapping or a stack slot mapping. llvm-svn: 11795
-
Alkis Evlogimenos authored
llvm-svn: 11782
-
Alkis Evlogimenos authored
llvm-svn: 11781
-
Alkis Evlogimenos authored
251 (providing a generic machine code rewriter/spiller). llvm-svn: 11780
-