Evan Cheng 
							
						 
					 
					
						
						
							
						
						bfc9999563 
					 
					
						
						
							
							Allow more cross-rc coalescing.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98048  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-09 06:38:17 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						1552cccc76 
					 
					
						
						
							
							Don't do illegal cross-class coalescing.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98044  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-09 03:56:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						31f94c7c22 
					 
					
						
						
							
							- Make the machine cse dumb coalescer (as opposed to the more awesome simple  
						
						 
						
						... 
						
						
						
						coalescer) handle sub-register classes.
- Add heuristics to avoid non-profitable cse. Given the current lack of live
  range splitting, avoid cse when an expression has PHI use and the would be
  new use is in a BB where the expression wasn't already being used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-09 03:21:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5196018d9c 
					 
					
						
						
							
							Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-08 23:49:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6c3b8ac6c9 
					 
					
						
						
							
							Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98007  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-08 23:28:08 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6cc1aeaad2 
					 
					
						
						
							
							Don't update physical register def.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97861  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-06 01:14:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a5f32cb3d3 
					 
					
						
						
							
							Avoid cse load instructions unless they are known to be invariant loads.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97747  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-04 21:18:08 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b3958e8032 
					 
					
						
						
							
							Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97706  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-04 01:33:55 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						67bda7215b 
					 
					
						
						
							
							Fix a logic error. An instruction that has a live physical register def cannot be CSE'ed, but it *can* be used to replace a common subexpression.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97688  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 23:59:08 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						05bdcbb1ae 
					 
					
						
						
							
							Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 23:27:36 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						319dfa3fb3 
					 
					
						
						
							
							Revert 97667. It broke a bunch of tests.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 22:40:03 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a054ae02fd 
					 
					
						
						
							
							Move DenseMapInfo for MachineInstr* to MachineInstr.h  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 21:47:16 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						16b48b8a05 
					 
					
						
						
							
							Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97664  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 21:20:05 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						6ba9554988 
					 
					
						
						
							
							Work in progress. Finding some cse now.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97635  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-03 02:48:20 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c5bbba1e49 
					 
					
						
						
							
							Fix typo.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-02 19:02:27 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c6fe333688 
					 
					
						
						
							
							Add skeleton of a machine level cse pass.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-03-02 02:38:24 +00:00