Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1eed04d1fb 
								
							 
						 
						
							
							
								
								Correct fix for a crasher on functions with live in values  
							
							 
							
							... 
							
							
							
							llvm-svn: 30099 
							
						 
						
							2006-09-04 18:27:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bff0b5969f 
								
							 
						 
						
							
							
								
								Hack around a regression I introduced yesterday  
							
							 
							
							... 
							
							
							
							llvm-svn: 30098 
							
						 
						
							2006-09-04 18:20:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8584e940b8 
								
							 
						 
						
							
							
								
								Avoid beating on the mi2i map when we know the answer already.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30066 
							
						 
						
							2006-09-03 08:07:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								774785a79d 
								
							 
						 
						
							
							
								
								minor speedup  
							
							 
							
							... 
							
							
							
							llvm-svn: 30065 
							
						 
						
							2006-09-03 07:53:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								75742e532a 
								
							 
						 
						
							
							
								
								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
llvm-svn: 30050 
							
						 
						
							2006-09-02 05:32:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5a56d30906 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 30049 
							
						 
						
							2006-09-02 05:26:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								93c067dc2d 
								
							 
						 
						
							
							
								
								Pull some code out of a hot recursive function because the common case doesn't  
							
							 
							
							... 
							
							
							
							need recursion.
llvm-svn: 30015 
							
						 
						
							2006-09-01 07:00:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3eac2c87aa 
								
							 
						 
						
							
							
								
								Reserve space in the ValueNumberInfo vector.  This speeds up live interval  
							
							 
							
							... 
							
							
							
							analysis 16% on crafty.
Wrap long lines.
llvm-svn: 30012 
							
						 
						
							2006-09-01 06:10:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f765351978 
								
							 
						 
						
							
							
								
								Iterative coallescing doesn't buy us anything (we get identical results on  
							
							 
							
							... 
							
							
							
							crafty with and without it).  Removing it speeds up live intervals 6%.
llvm-svn: 30010 
							
						 
						
							2006-09-01 04:02:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a700a19d04 
								
							 
						 
						
							
							
								
								Add a special case that speeds up coallescing a bit, but not enough.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29996 
							
						 
						
							2006-08-31 06:48:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78cca7243c 
								
							 
						 
						
							
							
								
								Delete copies as they are coallesced instead of waiting until the end.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29995 
							
						 
						
							2006-08-31 05:58:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aa36808fd3 
								
							 
						 
						
							
							
								
								avoid calling the virtual isMoveInstr method endlessly by caching its results.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29994 
							
						 
						
							2006-08-31 05:54:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cb74860cce 
								
							 
						 
						
							
							
								
								Fix a compiler crash bootstrapping llvm-gcc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29989 
							
						 
						
							2006-08-30 23:02:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								34434e97c9 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29968 
							
						 
						
							2006-08-29 23:18:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3c9b2420df 
								
							 
						 
						
							
							
								
								Eliminate RegisterAnalysis.  RegisterPass now does all that is necessary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29921 
							
						 
						
							2006-08-27 22:30:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2c3683a901 
								
							 
						 
						
							
							
								
								typo fix  
							
							 
							
							... 
							
							
							
							llvm-svn: 29910 
							
						 
						
							2006-08-27 12:47:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								122f2bcdc2 
								
							 
						 
						
							
							
								
								Simplifications to liveinterval analysis, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29896 
							
						 
						
							2006-08-26 01:28:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f4f0b1995c 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29890 
							
						 
						
							2006-08-25 23:41:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bdf121060c 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29862 
							
						 
						
							2006-08-24 22:43:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e9f1bc056 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 29830 
							
						 
						
							2006-08-22 18:19:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1d77a0ff88 
								
							 
						 
						
							
							
								
								Print physreg names symbolically in dumps  
							
							 
							
							... 
							
							
							
							llvm-svn: 29805 
							
						 
						
							2006-08-21 23:03:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								213159a6ee 
								
							 
						 
						
							
							
								
								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
llvm-svn: 29803 
							
						 
						
							2006-08-21 22:56:29 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								4b49c23571 
								
							 
						 
						
							
							
								
								Eliminate data relocations by using NULL instead of global empty list.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29250 
							
						 
						
							2006-07-21 21:15:20 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								c496b418b5 
								
							 
						 
						
							
							
								
								Reduce number of exported symbols  
							
							 
							
							... 
							
							
							
							llvm-svn: 29220 
							
						 
						
							2006-07-20 17:28:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								aa2372562e 
								
							 
						 
						
							
							
								
								Patches to make the LLVM sources more -pedantic clean.  Patch provided  
							
							 
							
							... 
							
							
							
							by Anton Korobeynikov!  This is a step towards closing PR786.
llvm-svn: 28447 
							
						 
						
							2006-05-24 17:04:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6a6886185b 
								
							 
						 
						
							
							
								
								Backing out fix for PR770. Need to re-apply it after live range splitting is possible  
							
							 
							
							... 
							
							
							
							llvm-svn: 28236 
							
						 
						
							2006-05-12 06:06:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								47926aff96 
								
							 
						 
						
							
							
								
								Set weight of zero length intervals to infinite to prevent them from being  
							
							 
							
							... 
							
							
							
							spilled.
llvm-svn: 28220 
							
						 
						
							2006-05-11 07:29:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ae45020720 
								
							 
						 
						
							
							
								
								PR 770 - permit coallescing of registers in subset register classes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28197 
							
						 
						
							2006-05-09 06:37:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								10d6341618 
								
							 
						 
						
							
							
								
								Move some methods out of MachineInstr into MachineOperand  
							
							 
							
							... 
							
							
							
							llvm-svn: 28102 
							
						 
						
							2006-05-04 17:52:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4dee67c2cd 
								
							 
						 
						
							
							
								
								Remove previous patch, which wasn't quite right.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28039 
							
						 
						
							2006-05-01 21:16:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f71f0f2e0b 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 28024 
							
						 
						
							2006-04-30 08:41:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								de02d7727f 
								
							 
						 
						
							
							
								
								Add explicit #includes of <iostream>  
							
							 
							
							... 
							
							
							
							llvm-svn: 25515 
							
						 
						
							2006-01-22 23:41:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b05fce676f 
								
							 
						 
						
							
							
								
								Minor cleanup, no functionality change for current targets  
							
							 
							
							... 
							
							
							
							llvm-svn: 25173 
							
						 
						
							2006-01-10 05:41:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b723c33614 
								
							 
						 
						
							
							
								
								Change a variable from being an iterator to a raw MachineInstr*, to make  
							
							 
							
							... 
							
							
							
							GDB use tolerable
llvm-svn: 25064 
							
						 
						
							2006-01-03 07:41:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3c7974aade 
								
							 
						 
						
							
							
								
								Fix some spello's pointed out by Gabor Greif  
							
							 
							
							... 
							
							
							
							llvm-svn: 24019 
							
						 
						
							2005-10-26 18:41:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e95b5745c0 
								
							 
						 
						
							
							
								
								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).
llvm-svn: 23866 
							
						 
						
							2005-10-21 06:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b1f8982ff0 
								
							 
						 
						
							
							
								
								Expose the LiveInterval interfaces as public headers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 23400 
							
						 
						
							2005-09-21 04:19:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ce3662f2a2 
								
							 
						 
						
							
							
								
								remove debugging code *slaps head*  
							
							 
							
							... 
							
							
							
							llvm-svn: 23294 
							
						 
						
							2005-09-09 19:19:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c9053083eb 
								
							 
						 
						
							
							
								
								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).
llvm-svn: 23293 
							
						 
						
							2005-09-09 19:17:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5d16dbd5bb 
								
							 
						 
						
							
							
								
								Fix a bug that Tzu-Chien Chiu noticed: live interval analysis does NOT  
							
							 
							
							... 
							
							
							
							preserve livevar
llvm-svn: 23259 
							
						 
						
							2005-09-07 17:34:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7138f91424 
								
							 
						 
						
							
							
								
								Teach live intervals to not crash on dead livein regs  
							
							 
							
							... 
							
							
							
							llvm-svn: 23206 
							
						 
						
							2005-09-02 00:20:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								774158239b 
								
							 
						 
						
							
							
								
								Simplify this code by using higher-level LiveVariables methods  
							
							 
							
							... 
							
							
							
							llvm-svn: 22989 
							
						 
						
							2005-08-23 22:51:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								96cbfbbeaf 
								
							 
						 
						
							
							
								
								Fix debug info to not print out recently freed memory.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22529 
							
						 
						
							2005-07-27 23:11:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9937713252 
								
							 
						 
						
							
							
								
								Print symbolic register names in debug dumps  
							
							 
							
							... 
							
							
							
							llvm-svn: 22528 
							
						 
						
							2005-07-27 23:03:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c08d786ba5 
								
							 
						 
						
							
							
								
								Print the symbolic register name in a register allocator debug dump.  
							
							 
							
							... 
							
							
							
							llvm-svn: 22002 
							
						 
						
							2005-05-14 05:34:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								91caf1d039 
								
							 
						 
						
							
							
								
								allow a virtual register to be associated with live-in values.  
							
							 
							
							... 
							
							
							
							llvm-svn: 21927 
							
						 
						
							2005-05-13 07:08:07 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								835702a094 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 21420 
							
						 
						
							2005-04-21 22:36:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1a44855f8f 
								
							 
						 
						
							
							
								
								there is no need to remove this instruction, linscan does it already as it  
							
							 
							
							... 
							
							
							
							removes noop moves.
llvm-svn: 21183 
							
						 
						
							2005-04-09 16:24:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0b1681bce1 
								
							 
						 
						
							
							
								
								Adjust live intervals to support a livein set  
							
							 
							
							... 
							
							
							
							llvm-svn: 21182 
							
						 
						
							2005-04-09 16:17:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6f6ecad995 
								
							 
						 
						
							
							
								
								I didn't mean to check this in. :(  
							
							 
							
							... 
							
							
							
							llvm-svn: 20555 
							
						 
						
							2005-03-10 20:59:51 +00:00