Tom Stellard 
							
						 
					 
					
						
						
							
						
						ec5b9ab433 
					 
					
						
						
							
							R600/SI: Fix asam errors in SIFoldOperands  
						
						... 
						
						
						
						We were trying to fold into implicit uses, which led to out of bounds
access of the MCInstrDesc::OpInfo arrray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229533  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-02-17 20:11:54 +00:00 
						 
				 
			
				
					
						
							
							
								Matt Arsenault 
							
						 
					 
					
						
						
							
						
						e7ff4c1321 
					 
					
						
						
							
							R600/SI: Fix phys reg copies in SIFoldOperands  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229227  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-02-14 02:55:57 +00:00 
						 
				 
			
				
					
						
							
							
								Matt Arsenault 
							
						 
					 
					
						
						
							
						
						1751616522 
					 
					
						
						
							
							R600/SI: Allow f64 inline immediates in i64 operands  
						
						... 
						
						
						
						This requires considering the size of the operand when
checking immediate legality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-02-13 19:05:03 +00:00 
						 
				 
			
				
					
						
							
							
								Matt Arsenault 
							
						 
					 
					
						
						
							
						
						ea3e75f4d4 
					 
					
						
						
							
							Fix typo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227697  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-31 23:37:27 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						d90e5063ca 
					 
					
						
						
							
							R600/SI: Add pattern for bitcasting fp immediates to integers  
						
						... 
						
						
						
						The backend now assumes that all immediates are integers.  This allows
us to simplify immediate handling code, becasue we no longer need to
handle fp and integer immediates differently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225844  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-13 22:59:41 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						a36b682c17 
					 
					
						
						
							
							R600/SI: Commute instructions to enable more folding opportunities  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-07 22:44:19 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						a3ee583339 
					 
					
						
						
							
							R600/SI: Only fold immediates that have one use  
						
						... 
						
						
						
						Folding the same immediate into multiple instruction will increase
program size, which can hurt performance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225405  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-07 22:18:27 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						f7587043ef 
					 
					
						
						
							
							R600/SI: Add a V_MOV_B64 pseudo instruction  
						
						... 
						
						
						
						This is used to simplify the SIFoldOperands pass and make it easier to
fold immediates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225373  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-07 20:27:25 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						546520a727 
					 
					
						
						
							
							R600/SI: Teach SIFoldOperands to split 64-bit constants when folding  
						
						... 
						
						
						
						This allows folding of sequences like:
s[0:1] = s_mov_b64 4
v_add_i32 v0, s0, v0
v_addc_u32 v1, s1, v1
into
v_add_i32 v0, 4, v0
v_add_i32 v1, 0, v1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225369  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-07 19:56:17 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						87ce6100a7 
					 
					
						
						
							
							R600/SI: Refactor SIFoldOperands to simplify immediate folding  
						
						... 
						
						
						
						This will make a future patch much less intrusive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225358  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2015-01-07 17:42:16 +00:00 
						 
				 
			
				
					
						
							
							
								Tom Stellard 
							
						 
					 
					
						
						
							
						
						edcd88ce1a 
					 
					
						
						
							
							R600/SI: Add SIFoldOperands pass  
						
						... 
						
						
						
						This pass attempts to fold the source operands of mov and copy
instructions into their uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222581  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-11-21 22:06:37 +00:00