Evan Cheng 
							
						 
					 
					
						
						
							
						
						63a431c670 
					 
					
						
						
							
							We also need to keep the operand index for two address check.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59562  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-18 22:56:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9c64bf3905 
					 
					
						
						
							
							Register scavenger should process early clobber defs first. A dead early clobber def should not interfere with a normal def which happens one slot later.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59559  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-18 22:28:38 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d735b8019b 
					 
					
						
						
							
							Switch the MachineOperand accessors back to the short names like  
						
						... 
						
						
						
						isReg, etc., from isRegister, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-03 15:45:36 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						4542611bb9 
					 
					
						
						
							
							Minor const-correctness fixes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-07 20:06:06 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						43e2a03530 
					 
					
						
						
							
							Fix some constructs that gcc-4.4 warns about.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-27 11:50:51 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5d3600f576 
					 
					
						
						
							
							Allow registers defined by implicit_def to be clobbered.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49512  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-10 23:47:53 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						1dc7869025 
					 
					
						
						
							
							1. IMPLICIT_DEF can *re-define* any register.  
						
						... 
						
						
						
						2. Coalescer can now create an interesting situation where a register def can
   reaches itself without being killed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49246  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-05 01:27:09 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						d93ae242d3 
					 
					
						
						
							
							Something that kills a super-register also  
						
						... 
						
						
						
						kills the sub-register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48038  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-07 23:45:15 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d68f47c6fd 
					 
					
						
						
							
							Fixed a register scavenger bug. If a def is re-defining part of a super register, there must be an implicit def of the super-register on the MI.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48024  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-07 20:12:54 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						ed1fcd8987 
					 
					
						
						
							
							When setting the "unused" info, take into account something like this:  
						
						... 
						
						
						
						%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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48003  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-06 23:22:43 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6130f66eaa 
					 
					
						
						
							
							Refactor code. Remove duplicated functions that basically do the same thing as  
						
						... 
						
						
						
						findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-05 00:59:57 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						a0a570cec6 
					 
					
						
						
							
							Make the register scavenger update the bookkeeping values for sub/super  
						
						... 
						
						
						
						registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47861  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-03 22:12:25 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						527c250a90 
					 
					
						
						
							
							Fix typos.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47200  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-16 01:09:25 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6f0d024a53 
					 
					
						
						
							
							Rename MRegisterInfo to TargetRegisterInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-10 18:45:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						749c6f6b5e 
					 
					
						
						
							
							rename TargetInstrDescriptor -> TargetInstrDesc.  
						
						... 
						
						
						
						Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 07:27:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						69244300b8 
					 
					
						
						
							
							Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects  
						
						... 
						
						
						
						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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 01:56:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f6372aa1cc 
					 
					
						
						
							
							Move some more instruction creation methods from RegisterInfo into InstrInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-01 21:11:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ee451de36 
					 
					
						
						
							
							Remove attribution from file headers, per discussion on llvmdev.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 20:36:04 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d64b5c82b9 
					 
					
						
						
							
							Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether  
						
						... 
						
						
						
						the stored register is killed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 03:14:33 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						92dfe2001e 
					 
					
						
						
							
							Remove isReg, isImm, and isMBB, and change all their users to use  
						
						... 
						
						
						
						isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-14 20:33:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5db322acef 
					 
					
						
						
							
							Better assertion messages.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37890  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-05 07:05:38 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						8e33473321 
					 
					
						
						
							
							If call frame is not part of stack frame and no dynamic alloc, eliminateFrameIndex() must adjust SP offset with size of call frames.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36625  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 09:01:42 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						faa510726f 
					 
					
						
						
							
							Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-26 19:00:32 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						595b6d121c 
					 
					
						
						
							
							Bad bad bug. findRegisterUseOperand() returns -1 if a use if not found.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35618  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-03 06:43:29 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						c6b9ef80a8 
					 
					
						
						
							
							Fix reversed logic in getRegsUsed.  Rename RegStates to RegsAvailable to  
						
						... 
						
						
						
						hopefully forestall similar errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35362  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-26 22:23:54 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						69cb9b78f1 
					 
					
						
						
							
							maintain LiveIn when splitting blocks (register scavenging needs it)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35226  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 21:35:06 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						caddd590f7 
					 
					
						
						
							
							Minor bug fix.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34985  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 21:58:15 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b74a3e6fda 
					 
					
						
						
							
							Register scavenger is now capable of scavenging. It spills a register whose use of furthest away to make it available.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34964  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 10:01:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5de3b7f351 
					 
					
						
						
							
							Mark dead def as unused.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34844  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-02 10:43:16 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5196b3680c 
					 
					
						
						
							
							Add a version of FindUnusedReg that restrict search to a specific set of registers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34784  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-01 08:56:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a3756ee7fe 
					 
					
						
						
							
							Interface clean up.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34770  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-01 02:19:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						898218cc5e 
					 
					
						
						
							
							Some more code clean up.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34700  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-27 22:58:43 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						8cab162e03 
					 
					
						
						
							
							Oops.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-27 22:10:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						bb6fb3357d 
					 
					
						
						
							
							RegScavenger interface change to make it more flexible.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-27 21:09:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ed570dedad 
					 
					
						
						
							
							forward() should not increment internal iterator. Its client may insert instruction between now and next forward() call.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34649  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-27 01:58:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0badfea274 
					 
					
						
						
							
							Add an assertion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-25 09:47:31 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						403c45dfcc 
					 
					
						
						
							
							Mark livein registers as being in used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34525  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-23 08:41:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						96fa612373 
					 
					
						
						
							
							Initial check in of register scavenger. Its only current functionality is tracking live registers per MBB.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34511  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-23 01:01:19 +00:00