summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/Spiller.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix some minor MSVC compiler warnings.Daniel Dunbar2009-07-191-1/+1
| | | | llvm-svn: 76356
* Match declaration to definition.Daniel Dunbar2009-07-121-1/+1
| | | | llvm-svn: 75440
* More VNInfo tweaking, plus a little progress on intra-block splitting.Lang Hames2009-06-191-1/+7
| | | | llvm-svn: 73750
* VNInfo cleanup.Lang Hames2009-06-171-0/+5
| | | | llvm-svn: 73634
* Update to in-place spilling framework. Includes live interval scaling and ↵Lang Hames2009-06-021-2/+3
| | | | | | trivial rewriter. llvm-svn: 72729
* Forward decls.Bill Wendling2009-05-191-0/+3
| | | | llvm-svn: 72114
* Remove 'class' specifier.Bill Wendling2009-05-191-3/+3
| | | | llvm-svn: 72113
* Fix to compile on VS2008.Bill Wendling2009-05-191-1/+2
| | | | llvm-svn: 72112
* New Spiller interface and trivial implementation.Lang Hames2009-05-181-0/+32
| | | | llvm-svn: 72030
* Renamed Spiller classes (plus uses and related files) to VirtRegRewriter.Lang Hames2009-05-061-340/+0
| | | | llvm-svn: 71057
* It has finally happened. Spiller is now using live interval info.Evan Cheng2009-04-211-5/+8
| | | | | | 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
* Teach spiller to unfold instructions which modref spill slot when a scratchEvan Cheng2009-04-171-3/+16
| | | | | | | | | | | | | | | | | | | | register is available and when it's profitable. e.g. xorq %r12<kill>, %r13 addq %rax, -184(%rbp) addq %r13, -184(%rbp) ==> xorq %r12<kill>, %r13 movq -184(%rbp), %r12 addq %rax, %r12 addq %r13, %r12 movq %r12, -184(%rbp) Two more instructions, but fewer memory accesses. It can also open up opportunities for more optimizations. llvm-svn: 69341
* Oy! When reverting r68073, I added in experimental code. Sorry...Bill Wendling2009-03-311-9/+0
| | | | llvm-svn: 68099
* Revert r68073. It's causing a failure in the Apple-style builds.Bill Wendling2009-03-311-0/+9
| | | | llvm-svn: 68092
* Spiller may unfold load / mod / store instructions as an optimization when ↵Evan Cheng2009-03-171-5/+21
| | | | | | the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded. llvm-svn: 67068
* Reorganize some #include's.Owen Anderson2009-03-121-4/+0
| | | | llvm-svn: 66780
* Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. ↵Owen Anderson2009-03-111-0/+312
No (intended) functionality change. llvm-svn: 66720
OpenPOWER on IntegriCloud