summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegisterScavenging.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Register scavenger should process early clobber defs first. A dead early ↵Evan Cheng2008-11-181-23/+37
| | | | | | clobber def should not interfere with a normal def which happens one slot later. llvm-svn: 59559
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-7/+7
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* Minor const-correctness fixes.Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53196
* Fix some constructs that gcc-4.4 warns about.Duncan Sands2008-05-271-1/+2
| | | | llvm-svn: 51591
* Allow registers defined by implicit_def to be clobbered.Evan Cheng2008-04-101-6/+15
| | | | llvm-svn: 49512
* 1. IMPLICIT_DEF can *re-define* any register.Evan Cheng2008-04-051-2/+42
| | | | | | | 2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. llvm-svn: 49246
* Something that kills a super-register alsoBill Wendling2008-03-071-2/+1
| | | | | | kills the sub-register. llvm-svn: 48038
* Fixed a register scavenger bug. If a def is re-defining part of a super ↵Evan Cheng2008-03-071-3/+8
| | | | | | register, there must be an implicit def of the super-register on the MI. llvm-svn: 48024
* When setting the "unused" info, take into account something like this:Bill Wendling2008-03-061-8/+38
| | | | | | | | %r3<def> = OR %x3<kill>, %x3 We don't want to mark the %r3 as unused even though it's a sub-register of %x3. llvm-svn: 48003
* Refactor code. Remove duplicated functions that basically do the same thing asEvan Cheng2008-03-051-15/+16
| | | | | | findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927
* Make the register scavenger update the bookkeeping values for sub/superBill Wendling2008-03-031-3/+39
| | | | | | registers. llvm-svn: 47861
* Fix typos.Bill Wendling2008-02-161-2/+2
| | | | llvm-svn: 47200
* Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman2008-02-101-1/+1
| | | | llvm-svn: 46930
* rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner2008-01-071-5/+5
| | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
* Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner2008-01-071-3/+3
| | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
* Move some more instruction creation methods from RegisterInfo into InstrInfo.Owen Anderson2008-01-011-3/+3
| | | | llvm-svn: 45484
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Add a argument to storeRegToStackSlot and storeRegToAddr to specify whetherEvan Cheng2007-12-051-1/+1
| | | | | | the stored register is killed. llvm-svn: 44600
* Remove isReg, isImm, and isMBB, and change all their users to use Dan Gohman2007-09-141-5/+5
| | | | | | | isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. llvm-svn: 41958
* Better assertion messages.Evan Cheng2007-07-051-3/+4
| | | | llvm-svn: 37890
* If call frame is not part of stack frame and no dynamic alloc, ↵Evan Cheng2007-05-011-4/+5
| | | | | | eliminateFrameIndex() must adjust SP offset with size of call frames. llvm-svn: 36625
* Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.Evan Cheng2007-04-261-1/+1
| | | | llvm-svn: 36483
* Bad bad bug. findRegisterUseOperand() returns -1 if a use if not found.Evan Cheng2007-04-031-1/+1
| | | | llvm-svn: 35618
* Fix reversed logic in getRegsUsed. Rename RegStates to RegsAvailable toDale Johannesen2007-03-261-15/+15
| | | | | | hopefully forestall similar errors. llvm-svn: 35362
* maintain LiveIn when splitting blocks (register scavenging needs it)Dale Johannesen2007-03-201-0/+7
| | | | llvm-svn: 35226
* Minor bug fix.Evan Cheng2007-03-061-0/+2
| | | | llvm-svn: 34985
* Register scavenger is now capable of scavenging. It spills a register whose ↵Evan Cheng2007-03-061-2/+90
| | | | | | use of furthest away to make it available. llvm-svn: 34964
* Mark dead def as unused.Evan Cheng2007-03-021-2/+6
| | | | llvm-svn: 34844
* Add a version of FindUnusedReg that restrict search to a specific set of ↵Evan Cheng2007-03-011-0/+15
| | | | | | registers. llvm-svn: 34784
* Interface clean up.Evan Cheng2007-03-011-13/+7
| | | | llvm-svn: 34770
* Some more code clean up.Evan Cheng2007-02-271-23/+29
| | | | llvm-svn: 34700
* Oops.Evan Cheng2007-02-271-1/+4
| | | | llvm-svn: 34698
* RegScavenger interface change to make it more flexible.Evan Cheng2007-02-271-16/+18
| | | | llvm-svn: 34690
* forward() should not increment internal iterator. Its client may insert ↵Evan Cheng2007-02-271-4/+25
| | | | | | instruction between now and next forward() call. llvm-svn: 34649
* Add an assertion.Evan Cheng2007-02-251-2/+4
| | | | llvm-svn: 34596
* Mark livein registers as being in used.Evan Cheng2007-02-231-0/+6
| | | | llvm-svn: 34525
* Initial check in of register scavenger. Its only current functionality is ↵Evan Cheng2007-02-231-0/+140
tracking live registers per MBB. llvm-svn: 34511
OpenPOWER on IntegriCloud