Matt Beaumont-Gay 
							
						 
					 
					
						
						
							
						
						3ef9f3da39 
					 
					
						
						
							
							Move debugging code entirely within DEBUG(). Silences an unused variable  
						
						... 
						
						
						
						warning in the opt build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121791  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 21:14:55 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						bfce678de7 
					 
					
						
						
							
							Add LiveIntervalUnion print methods, RegAllocGreedy::trySplit debug spew.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121783  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 19:38:49 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						d84de8cf62 
					 
					
						
						
							
							Q.seenAllInterferences() must be called after Q.collectInterferingVRegs().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 17:47:36 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						885b3283ea 
					 
					
						
						
							
							Remove unused vector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121741  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 00:58:47 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						46c83c80c5 
					 
					
						
						
							
							Try reassigning all virtual register interferences, not just those with lower  
						
						... 
						
						
						
						spill weight. Filter out fixed registers instead.
Add support for reassigning an interference that was assigned to an alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121737  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 00:37:49 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						b64d92e29f 
					 
					
						
						
							
							Add stub for RAGreedy::trySplit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121736  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-14 00:37:44 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						533f58ecdd 
					 
					
						
						
							
							Add named timer groups for the different stages of register allocation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121604  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-11 00:19:56 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						4680dec5fb 
					 
					
						
						
							
							Move MRI into RegAllocBase. Clean up debug output a bit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121599  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 23:49:00 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						a0bb037283 
					 
					
						
						
							
							Remove extraneous close parenthesis.  
						
						... 
						
						
						
						Fix build breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 23:14:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						5a4308bca8 
					 
					
						
						
							
							Move variable that's unused in an NDEBUG build inside the DEBUG() macro, fixing  
						
						... 
						
						
						
						lib/CodeGen/RegAllocGreedy.cpp:233: error: unused variable 'TRC' [-Wunused-variable]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121594  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 23:05:10 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						f6dff84d4e 
					 
					
						
						
							
							Force the greedy register allocator to always use the inline spiller.  
						
						... 
						
						
						
						Soon, RegAllocGreedy will start splitting live ranges, and then deferred
spilling won't work anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 22:54:44 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						dd479e9769 
					 
					
						
						
							
							Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121584  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 22:21:05 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						6ce219ec64 
					 
					
						
						
							
							Fix miscompilation caused by trivial logic error in the reassignVReg()  
						
						... 
						
						
						
						interference check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121519  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 20:45:04 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						ff092faffb 
					 
					
						
						
							
							Remember to filter out reserved rergisters from the allocation order.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-09 21:20:46 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Trick 
							
						 
					 
					
						
						
							
						
						b853e6c370 
					 
					
						
						
							
							Added register reassignment prototype to RAGreedy. It's a simple  
						
						... 
						
						
						
						heuristic to reshuffle register assignments when we can't find an
available reg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121388  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-09 18:15:21 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						9b0c4f8af3 
					 
					
						
						
							
							Properly deal with empty intervals when checking for interference.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121319  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 23:51:35 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						90c1d7ddfc 
					 
					
						
						
							
							Implement very primitive hinting support in RegAllocGreedy.  
						
						... 
						
						
						
						The hint is simply tried first and then forgotten if it couldn't be allocated
immediately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121306  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 22:57:16 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						d0bec3e62c 
					 
					
						
						
							
							Store (priority,regnum) pairs in the priority queue instead of providing an  
						
						... 
						
						
						
						abstract priority queue interface in subclasses that want to override the
priority calculations.
Subclasses must provide a getPriority() implementation instead.
This approach requires less code as long as priorities are expressable as simple
floats, and it avoids the dangers of defining potentially expensive priority
comparison functions.
It also should speed up priority_queue operations since they no longer have to
chase pointers when comparing registers. This is not measurable, though.
Preferably, we shouldn't use floats to guide code generation. The use of floats
here is derived from the use of floats for spill weights. Spill weights have a
dynamic range that doesn't lend itself easily to a fixpoint implementation.
When someone invents a stable spill weight representation, it can be reused for
allocation priorities.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121294  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 22:22:41 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						753936602e 
					 
					
						
						
							
							Trim includes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121283  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 21:12:00 +00:00 
						 
				 
			
				
					
						
							
							
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						cba2e06d52 
					 
					
						
						
							
							Stub out RegAllocGreedy.  
						
						... 
						
						
						
						This new register allocator is initially identical to RegAllocBasic, but it will
receive all of the tricks that RegAllocBasic won't get.
RegAllocGreedy will eventually replace linear scan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121234  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 03:26:16 +00:00