Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						3bf564a95f 
					 
					
						
						
							
							Change the way free regusters are computed and perform better  
						
						... 
						
						
						
						allocation in the presence of preallocated intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10595  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-23 18:00:33 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4de1fefd7c 
					 
					
						
						
							
							Remove verifyIntervals() since it doesn't actually work right now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10570  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-21 20:41:26 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						6b4edbaaf9 
					 
					
						
						
							
							Change weight into a float so that we can take into account the  
						
						... 
						
						
						
						nesting level when computing it. Right now the allocator uses:
    w = sum_over_defs_uses( 10 ^ nesting level );
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10569  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-21 20:19:10 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						169cfd0196 
					 
					
						
						
							
							Add support for inactive intervals. This effectively reuses registers  
						
						... 
						
						
						
						for live ranges that fall into assigned registers' holes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10566  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-21 05:43:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e46b513f3 
					 
					
						
						
							
							Prune some #includes  
						
						... 
						
						
						
						Add a statistic for # reloads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10518  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 20:25:31 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						a71e05acdd 
					 
					
						
						
							
							Modify linear scan register allocator to use the two-address  
						
						... 
						
						
						
						instruction pass. This also fixes all remaining bugs for this new
allocator to pass all tests under test/Programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10515  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 13:15:02 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						a3d0e5c2b2 
					 
					
						
						
							
							Fix bug in reserved registers. DH actually aliases DX and EDX which  
						
						... 
						
						
						
						are not reserved registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10514  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 13:12:18 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						485ec3c21e 
					 
					
						
						
							
							Rename LiveIntervals::expired() to LiveIntervals::expiredAt().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10511  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 08:56:11 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4d7af65903 
					 
					
						
						
							
							Change interface of MachineOperand as follows:  
						
						... 
						
						
						
						a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
    b) add isUse(), isDef()
    c) rename opHiBits32() to isHiBits32(),
              opLoBits32() to isLoBits32(),
              opHiBits64() to isHiBits64(),
              opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-14 13:24:17 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						94743e4915 
					 
					
						
						
							
							When reserving a preallocated register spill the aliases of this  
						
						... 
						
						
						
						register too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10450  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-13 11:58:10 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						7d65a12fe6 
					 
					
						
						
							
							Expire any active intervals left when register allocation is done.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10448  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-13 05:50:19 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						f6e610c27d 
					 
					
						
						
							
							Add instruction numbers to debugging output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10447  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-13 05:48:57 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						49787e35c3 
					 
					
						
						
							
							Fix bug in register spilling when a preallocated live range overlaps a  
						
						... 
						
						
						
						potential register assignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10291  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-05 11:17:55 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						69546d5f84 
					 
					
						
						
							
							Improve debugging output and clean up some code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10288  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-04 03:57:28 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						585870759b 
					 
					
						
						
							
							Print instructions before register allocation is performed.  Also fix  
						
						... 
						
						
						
						bug where spill instructions were added to the next basic block
instead of the end of the current one if the instruction that required
the spill was the last in the block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10272  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-30 23:40:39 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						99d1a8f048 
					 
					
						
						
							
							Remove "numReloaded" statistic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10268  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-30 05:15:36 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						ff0cbe175d 
					 
					
						
						
							
							Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10103  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-20 03:32:25 +00:00