Evan Cheng 
							
						 
					 
					
						
						
							
						
						5248468473 
					 
					
						
						
							
							Enable cross register class coalescing.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-18 02:10:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c1b46f91f5 
					 
					
						
						
							
							Fix my brain cramp by inverting the assertion condition.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76131  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-17 00:32:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						2df5e554e2 
					 
					
						
						
							
							Disable this assert for now, it is firing on an llvm-gcc bootstrap. :(  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76123  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 23:02:46 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						24cd3c4711 
					 
					
						
						
							
							Fix inverted preprocessor conditional.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76111  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 22:08:25 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5f15992b77 
					 
					
						
						
							
							Changed my mind. We now allow remat of instructions whose defs have subreg indices.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76100  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 20:15:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						378445303b 
					 
					
						
						
							
							Let callers decide the sub-register index on the def operand of rematerialized instructions.  
						
						 
						
						... 
						
						
						
						Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75900  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 09:20:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Torok Edwin 
							
						 
					 
					
						
						
							
						
						c23197a26f 
					 
					
						
						
							
							llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.  
						
						 
						
						... 
						
						
						
						This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-14 16:55:14 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Torok Edwin 
							
						 
					 
					
						
						
							
						
						c25e7581b9 
					 
					
						
						
							
							assert(0) -> LLVM_UNREACHABLE.  
						
						 
						
						... 
						
						
						
						Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-11 20:10:48 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						261ce1d5f8 
					 
					
						
						
							
							Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75264  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-10 19:15:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2578ba26e7 
					 
					
						
						
							
							Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-01 01:59:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4784f1fc73 
					 
					
						
						
							
							Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.  
						
						 
						
						... 
						
						
						
						The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.
This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-30 08:49:04 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Lang Hames 
							
						 
					 
					
						
						
							
						
						ac2764040f 
					 
					
						
						
							
							Removed SimpleRewriter.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72880  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-04 18:45:36 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2c48fe6757 
					 
					
						
						
							
							Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72758  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-03 09:00:27 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Lang Hames 
							
						 
					 
					
						
						
							
						
						f41538d1b5 
					 
					
						
						
							
							Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-02 16:53:25 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						427a6b666b 
					 
					
						
						
							
							Fix PR4210. Rewritter should track and update kills of sub-registers as well.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71848  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-15 06:48:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						eca24fba3f 
					 
					
						
						
							
							Teach TransferDeadness to delete truly dead instructions if they do not produce side effects.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71606  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-12 23:07:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Lang Hames 
							
						 
					 
					
						
						
							
						
						87e3bcab73 
					 
					
						
						
							
							Renamed Spiller classes (plus uses and related files) to VirtRegRewriter.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71057  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-06 02:36:21 +00:00