Chris Lattner 
							
						 
					 
					
						
						
							
						
						5277e4304e 
					 
					
						
						
							
							Hack around a regression I introduced yesterday  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30098  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-04 18:20:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6b128bdc58 
					 
					
						
						
							
							Avoid beating on the mi2i map when we know the answer already.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30066  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-03 08:07:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fbecc5a593 
					 
					
						
						
							
							minor speedup  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30065  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-03 07:53:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1acb17cb83 
					 
					
						
						
							
							Iteration is required for some cases, even if they don't occur in crafty.  
						
						... 
						
						
						
						Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30050  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-02 05:32:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f21f0205b5 
					 
					
						
						
							
							When joining two intervals where the RHS is really simple, use a light-weight  
						
						... 
						
						
						
						method for joining the live ranges instead of the fully-general one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30049  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-02 05:26:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a67f6e848 
					 
					
						
						
							
							Pull some code out of a hot recursive function because the common case doesn't  
						
						... 
						
						
						
						need recursion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30015  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-01 07:00:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						238416c99b 
					 
					
						
						
							
							Reserve space in the ValueNumberInfo vector.  This speeds up live interval  
						
						... 
						
						
						
						analysis 16% on crafty.
Wrap long lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30012  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-01 06:10:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a2a8f0919d 
					 
					
						
						
							
							Iterative coallescing doesn't buy us anything (we get identical results on  
						
						... 
						
						
						
						crafty with and without it).  Removing it speeds up live intervals 6%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30010  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-01 04:02:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2ebfa0c618 
					 
					
						
						
							
							Add a special case that speeds up coallescing a bit, but not enough.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29996  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-31 06:48:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bfe180af9e 
					 
					
						
						
							
							Delete copies as they are coallesced instead of waiting until the end.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29995  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-31 05:58:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						91725b7585 
					 
					
						
						
							
							avoid calling the virtual isMoveInstr method endlessly by caching its results.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29994  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-31 05:54:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ba256037ce 
					 
					
						
						
							
							Fix a compiler crash bootstrapping llvm-gcc.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29989  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-30 23:02:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6d8fbef015 
					 
					
						
						
							
							Teach the coallescer to coallesce live intervals joined by an arbitrary  
						
						... 
						
						
						
						number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced.  Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29968  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-29 23:18:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5d8925c7c5 
					 
					
						
						
							
							Eliminate RegisterAnalysis.  RegisterPass now does all that is necessary.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29921  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-27 22:30:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c9d94d1290 
					 
					
						
						
							
							typo fix  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-27 12:47:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e7f729b42b 
					 
					
						
						
							
							Simplifications to liveinterval analysis, no functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29896  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-26 01:28:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c114b2cad7 
					 
					
						
						
							
							Completely change the way that joining with physregs is implemented.  This  
						
						... 
						
						
						
						paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29890  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-25 23:41:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f7da2c7b0c 
					 
					
						
						
							
							Take advantage of the recent improvements to the liveintervals set (tracking  
						
						... 
						
						
						
						instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:
1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
   better solution.
3. Implements PR865, "coallescing" away the second copy in code like:
   A = B
   ...
   B = A
This also includes changes to symbolically print registers in intervals
when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29862  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-24 22:43:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						be4f88a8b8 
					 
					
						
						
							
							Improve the LiveInterval class to keep track of which machine instruction  
						
						... 
						
						
						
						defines each value# tracked by the interval.  This will be used to improve
coallescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29830  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-22 18:19:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8222b2de22 
					 
					
						
						
							
							Print physreg names symbolically in dumps  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29805  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-21 23:03:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7c10b0d2c9 
					 
					
						
						
							
							Print debug info as:  
						
						... 
						
						
						
						*** Register mapping ***
  reg 1024 -> %reg1028
  reg 1026 -> EAX
  reg 1027 -> %reg1028
instead of:
*** Register mapping ***
  reg 1024 -> reg 1028
  reg 1026 -> reg 15
  reg 1027 -> reg 1028
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29803  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-21 22:56:29 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						cd4317efcf 
					 
					
						
						
							
							Eliminate data relocations by using NULL instead of global empty list.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-21 21:15:20 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						ed41f1bb19 
					 
					
						
						
							
							Reduce number of exported symbols  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29220  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-20 17:28:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d74ea2bbd8 
					 
					
						
						
							
							Patches to make the LLVM sources more -pedantic clean.  Patch provided  
						
						... 
						
						
						
						by Anton Korobeynikov!  This is a step towards closing PR786.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-24 17:04:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						647c15e58e 
					 
					
						
						
							
							Backing out fix for PR770. Need to re-apply it after live range splitting is possible  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28236  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-12 06:06:34 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						993141402f 
					 
					
						
						
							
							Set weight of zero length intervals to infinite to prevent them from being  
						
						... 
						
						
						
						spilled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28220  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-11 07:29:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e73701df94 
					 
					
						
						
							
							PR 770 - permit coallescing of registers in subset register classes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28197  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-09 06:37:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e53f4a055f 
					 
					
						
						
							
							Move some methods out of MachineInstr into MachineOperand  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-04 17:52:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						35f2705e3d 
					 
					
						
						
							
							Remove previous patch, which wasn't quite right.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28039  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-01 21:16:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						200370fb56 
					 
					
						
						
							
							Local spiller kills a store if the folded restore is turned into a copy.  
						
						... 
						
						
						
						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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28024  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-04-30 08:41:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2c2c6c61f1 
					 
					
						
						
							
							Add explicit #includes of <iostream>  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25515  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-22 23:41:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						60d97d4f55 
					 
					
						
						
							
							Minor cleanup, no functionality change for current targets  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25173  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-10 05:41:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3b9db830f7 
					 
					
						
						
							
							Change a variable from being an iterator to a raw MachineInstr*, to make  
						
						... 
						
						
						
						GDB use tolerable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25064  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-03 07:41:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c60e6020c0 
					 
					
						
						
							
							Fix some spello's pointed out by Gabor Greif  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24019  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-26 18:41:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						aa51a484e1 
					 
					
						
						
							
							Make the coallescer a bit smarter, allowing it to join more live ranges.  
						
						... 
						
						
						
						For example, we can now join things like [0-30:0)[31-40:1)[52-59:2)
with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range.
The resultant range ends up being [0-30:0)[31-60:1).
This fires a lot through-out the test suite (e.g. shrinking bc from
19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about
50 copies eliminated from crafty).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23866  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-21 06:49:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3c3fe462f7 
					 
					
						
						
							
							Expose the LiveInterval interfaces as public headers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23400  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-21 04:19:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ceb0a52231 
					 
					
						
						
							
							remove debugging code *slaps head*  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23294  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-09 19:19:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b11443dc84 
					 
					
						
						
							
							When spilling a live range that is used multiple times by one instruction,  
						
						... 
						
						
						
						only add a reload live range once for the instruction.  This is one step
towards fixing a regalloc pessimization that Nate notice, but is later undone
by the spiller (so no code is changed).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23293  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-09 19:17:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						dc6e2e0a5f 
					 
					
						
						
							
							Fix a bug that Tzu-Chien Chiu noticed: live interval analysis does NOT  
						
						... 
						
						
						
						preserve livevar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23259  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-07 17:34:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5ab6f5fe66 
					 
					
						
						
							
							Teach live intervals to not crash on dead livein regs  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23206  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 00:20:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ab4b66d4c2 
					 
					
						
						
							
							Simplify this code by using higher-level LiveVariables methods  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22989  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-23 22:51:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cef21c3544 
					 
					
						
						
							
							Fix debug info to not print out recently freed memory.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22529  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-27 23:11:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e7a70976d 
					 
					
						
						
							
							Print symbolic register names in debug dumps  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22528  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-27 23:03:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						38135af219 
					 
					
						
						
							
							Print the symbolic register name in a register allocator debug dump.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22002  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 05:34:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						712ad0c36d 
					 
					
						
						
							
							allow a virtual register to be associated with live-in values.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21927  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-13 07:08:07 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						edf128a7fa 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 22:36:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e7d87b228 
					 
					
						
						
							
							there is no need to remove this instruction, linscan does it already as it  
						
						... 
						
						
						
						removes noop moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21183  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-09 16:24:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						799a919dbc 
					 
					
						
						
							
							Adjust live intervals to support a livein set  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21182  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-09 16:17:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e97568c3c4 
					 
					
						
						
							
							I didn't mean to check this in. :(  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20555  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-10 20:59:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f768bba43f 
					 
					
						
						
							
							Allow the live interval analysis pass to be a bit more aggressive about  
						
						... 
						
						
						
						numbering values in live ranges for physical registers.
The alpha backend currently generates code that looks like this:
  vreg = preg
...
  preg = vreg
  use preg
...
  preg = vreg
  use preg
etc.  Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.
In the case of the Alpha, this allows this testcase:
void "foo"(int %blah) {
        store int 5, int *%MyVar
        store int 12, int* %MyVar2
        ret void
}
to compile to:
foo:
        ldgp $29, 0($27)
        ldiq $0,5
        stl $0,MyVar
        ldiq $0,12
        stl $0,MyVar2
        ret $31,($26),1
instead of:
foo:
        ldgp $29, 0($27)
        bis $29,$29,$0
        ldiq $1,5
        bis $0,$0,$29
        stl $1,MyVar
        ldiq $1,12
        bis $0,$0,$29
        stl $1,MyVar2
        ret $31,($26),1
This does not seem to have any noticable effect on X86 code.
This fixes PR535.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-09 23:05:19 +00:00