Chris Lattner 
							
						 
					 
					
						
						
							
						
						3adf951364 
					 
					
						
						
							
							tighten up recursion depth again  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37330  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-25 02:19:06 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c843abe868 
					 
					
						
						
							
							Fix a typo that caused combiner to create mal-formed pre-indexed store where value store is the same as the base pointer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-24 02:35:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						501fee71e0 
					 
					
						
						
							
							prevent exponential recursion in isNegatibleForFree  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37310  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-23 07:35:22 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						fcc4dd91e5 
					 
					
						
						
							
							Qualify calls to getTypeForValueType with MVT:: too.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37233  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-18 18:41:29 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						98a6c62aff 
					 
					
						
						
							
							Don't fold bitconvert(load) for preinc/postdec loads.  Likewise stores.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37130  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-16 22:45:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c76d4410ab 
					 
					
						
						
							
							Use a ptr set instead of a linear search to unique TokenFactor operands.  
						
						... 
						
						
						
						This fixes PR1423
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-16 06:37:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						93003b8cf2 
					 
					
						
						
							
							Bug fix: should check ABI alignment, not pref. alignment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37094  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-16 02:04:50 +00:00 
						 
				 
			
				
					
						
							
							
								Lauro Ramos Venancio 
							
						 
					 
					
						
						
							
						
						b5bb7ffa9c 
					 
					
						
						
							
							Fix an infinite recursion in GetNegatedExpression.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-15 17:05:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2944652569 
					 
					
						
						
							
							implement a simple fneg optimization/propagation thing.  This compiles:  
						
						... 
						
						
						
						CodeGen/PowerPC/fneg.ll into:
_t4:
        fmul f0, f3, f4
        fmadd f1, f1, f2, f0
        blr
instead of:
_t4:
        fneg f0, f3
        fmul f0, f0, f4
        fmsub f1, f1, f2, f0
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37054  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-14 22:04:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2c4f94363a 
					 
					
						
						
							
							Can't fold the bit_convert is the store is a truncating store.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36962  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-09 21:49:47 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c2cd2b29f5 
					 
					
						
						
							
							Forgot a check.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-07 21:36:06 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						59d5b68dff 
					 
					
						
						
							
							Enable a couple of xforms:  
						
						... 
						
						
						
						- (store (bitconvert v)) -> (store v) if resultant store does not require
higher alignment
- (bitconvert (load v)) -> (load (bitconvert*)v) if resultant load does not
require higher alignment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36908  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-07 21:27:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a7d4a04d24 
					 
					
						
						
							
							Don't create indexed load / store with zero offset!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36716  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-03 23:52:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						498f55989a 
					 
					
						
						
							
							Forgot about chain result; also UNDEF cannot have multiple values.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36622  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 08:53:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						45a7ca9b23 
					 
					
						
						
							
							* Only turn a load to UNDEF if all of its outputs have no uses (indexed loads  
						
						... 
						
						
						
						produce two results.)
* Do not touch volatile loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36604  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 00:38:21 +00:00 
						 
				 
			
				
					
						
							
							
								Christopher Lamb 
							
						 
					 
					
						
						
							
						
						95c218a83e 
					 
					
						
						
							
							PR400 phase 2. Propagate attributed load/store information through DAGs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36356  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-22 23:15:30 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						c67bdc288a 
					 
					
						
						
							
							Revert Christopher Lamb's load/store alignment changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-21 18:36:27 +00:00 
						 
				 
			
				
					
						
							
							
								Christopher Lamb 
							
						 
					 
					
						
						
							
						
						2330e4d4c4 
					 
					
						
						
							
							add support for alignment attributes on load/store instructions  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-21 08:16:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						61a4c072b9 
					 
					
						
						
							
							allow SRL to simplify its operands, as it doesn't demand all bits as input.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36245  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-18 03:06:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ec06e9a670 
					 
					
						
						
							
							When replacing a node in SimplifyDemandedBits, if the old node used any  
						
						... 
						
						
						
						single-use nodes, they will be dead soon.  Make sure to remove them before
processing other nodes.  This implements CodeGen/X86/shl_elim.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36244  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-18 03:05:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						95a5e0507e 
					 
					
						
						
							
							SIGN_EXTEND_INREG does not demand its top bits.  Give SimplifyDemandedBits  
						
						... 
						
						
						
						a chance to hack on it.  This compiles:
int baz(long long a) { return (short)(((int)(a >>24)) >> 9); }
into:
_baz:
        slwi r2, r3, 8
        srwi r2, r2, 9
        extsh r3, r2
        blr
instead of:
_baz:
        srwi r2, r4, 24
        rlwimi r2, r3, 8, 0, 23
        srwi r2, r2, 9
        extsh r3, r2
        blr
This implements CodeGen/PowerPC/sign_ext_inreg1.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36212  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-17 19:03:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c24bbaddf8 
					 
					
						
						
							
							fix an infinite loop compiling ldecod, notice by JeffC.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-11 16:51:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1eba01e9a0 
					 
					
						
						
							
							Fix this harder.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35888  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-11 06:50:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c56a81dff1 
					 
					
						
						
							
							don't create shifts by zero, fix some problems with my previous patch  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35887  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-11 06:43:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						20a35c3fa5 
					 
					
						
						
							
							Teach the codegen to turn [aez]ext (setcc) -> selectcc of 1/0, which often  
						
						... 
						
						
						
						allows other simplifications.  For example, this compiles:
int isnegative(unsigned int X) {
   return !(X < 2147483648U);
}
Into this code:
x86:
        movl 4(%esp), %eax
        shrl $31, %eax
        ret
arm:
        mov r0, r0, lsr #31 
        bx lr
thumb:
        lsr r0, r0, #31 
        bx lr
instead of:
x86:
        cmpl $0, 4(%esp)
        sets %al
        movzbl %al, %eax
        ret
arm:
        mov r3, #0 
        cmp r0, #0 
        movlt r3, #1 
        mov r0, r3
        bx lr
thumb:
        mov r2, #1 
        mov r1, #0 
        cmp r0, #0 
        blt LBB1_2      @entry
LBB1_1: @entry
        cpy r2, r1
LBB1_2: @entry
        cpy r0, r2
        bx lr
Testcase here: test/CodeGen/Generic/ispositive.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35883  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-11 05:32:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1982ef20c4 
					 
					
						
						
							
							Codegen integer abs more efficiently using the trick from the PPC CWG.  This  
						
						... 
						
						
						
						improves codegen on many architectures.  Tests committed as CodeGen/*/iabs.ll
X86 Old:			X86 New:
_test:				_test:
   movl 4(%esp), %ecx		   movl 4(%esp), %eax
   movl %ecx, %eax		   movl %eax, %ecx
   negl %eax			   sarl $31, %ecx
   testl %ecx, %ecx		   addl %ecx, %eax
   cmovns %ecx, %eax		   xorl %ecx, %eax
   ret				   ret
PPC Old:			PPC New:
_test:				_test:
   cmpwi cr0, r3, -1		   srawi r2, r3, 31
   neg r2, r3			   add r3, r3, r2
   bgt cr0, LBB1_2 ;		   xor r3, r3, r2
LBB1_1: ;			   blr
   mr r3, r2
LBB1_2: ;
   blr
ARM Old:			ARM New:
_test:				_test:
   rsb r3, r0, #0 		   add r3, r0, r0, asr #31 
   cmp r0, #0 			   eor r0, r3, r0, asr #31 
   movge r3, r0			   bx lr
   mov r0, r3
   bx lr
Thumb Old:			Thumb New:
_test:				_test:
   neg r2, r0			   asr r2, r0, #31 
   cmp r0, #0 			   add r0, r0, r2
   bge LBB1_2			   eor r0, r2
LBB1_1: @			   bx lr
   cpy r0, r2
LBB1_2: @
   bx lr
Sparc Old:			Sparc New:
test:				test:
   save -96, %o6, %o6		   save -96, %o6, %o6
   sethi 0, %l0			   sra %i0, 31, %l0
   sub %l0, %i0, %l0		   add %i0, %l0, %l1
   subcc %i0, -1, %l1		   xor %l1, %l0, %i0
   bg .BB1_2			   restore %g0, %g0, %g0
   nop				   retl
.BB1_1:				   nop
   or %g0, %l0, %i0
.BB1_2:
   restore %g0, %g0, %g0
   retl
   nop
It also helps alpha/ia64 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35881  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-11 05:11:38 +00:00 
						 
				 
			
				
					
						
							
							
								Scott Michel 
							
						 
					 
					
						
						
							
						
						c9dc114578 
					 
					
						
						
							
							1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.  
						
						... 
						
						
						
						2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL
patterns. This was motivated by the X86/rotate.ll testcase, which should now
generate code for other platforms (and soon-to-come platforms.) Rewrote code
slightly to make it easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35605  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-02 21:36:32 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						2041a0ef75 
					 
					
						
						
							
							Fix incorrect combination of different loads.  Reenable zext-over-truncate  
						
						... 
						
						
						
						combination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35517  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-30 21:38:07 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b0b6c76ffe 
					 
					
						
						
							
							Disable load width reduction xform of variant (zext (truncate load x)) for  
						
						... 
						
						
						
						big endian targets until llvm-gcc build issue has been resolved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35449  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-29 07:56:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						15213b77cf 
					 
					
						
						
							
							SIGN_EXTEND_INREG requires one extra operand, a ValueType node.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35350  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-26 07:12:51 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						dae54ce7fc 
					 
					
						
						
							
							Adjust offset to compensate for big endian machines.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35293  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-24 00:02:43 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e177e307fc 
					 
					
						
						
							
							Make sure SEXTLOAD of the specific type is supported on the target.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35289  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 22:13:36 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b37b80ce46 
					 
					
						
						
							
							Also replace uses of SRL if that's also folded during ReduceLoadWidth().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 20:55:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0b063def98 
					 
					
						
						
							
							A couple of bug fixes for reducing load width xform:  
						
						... 
						
						
						
						1. Address offset is in bytes.
2. Make sure truncate node uses are replaced with new load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35274  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 02:16:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c88138fb5e 
					 
					
						
						
							
							More opportunities to reduce load size.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35254  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-22 01:54:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						007b69eeaa 
					 
					
						
						
							
							fold (truncate (srl (load x), c)) -> (smaller load (x+c/vt bits))  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35239  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-21 20:14:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						83060c544b 
					 
					
						
						
							
							Avoid combining indexed load further.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35005  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 08:07:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b654176cb4 
					 
					
						
						
							
							fold away addc nodes when we know there cannot be a carry-out.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34913  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-04 20:40:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bcf2484450 
					 
					
						
						
							
							generalize  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-04 20:08:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						91153686f0 
					 
					
						
						
							
							canonicalize constants to the RHS of addc/adde.  If nothing uses the carry out of  
						
						... 
						
						
						
						addc, turn it into add.
This allows us to compile:
long long test(long long A, unsigned B) {
  return (A + ((long long)B << 32)) & 123;
}
into:
_test:
        movl $123, %eax
        andl 4(%esp), %eax
        xorl %edx, %edx
        ret
instead of:
_test:
        xorl %edx, %edx
        movl %edx, %eax
        addl 4(%esp), %eax   ;; add of zero
        andl $123, %eax
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34909  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-04 20:03:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2255887574 
					 
					
						
						
							
							Fold (sext (truncate x)) more aggressively, by avoiding creation of a  
						
						... 
						
						
						
						sextinreg if not needed.   This is useful in two cases: before legalize,
it avoids creating a sextinreg that will be trivially removed.  After legalize
if the target doesn't support sextinreg, the trunc/sext would not have been
removed before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34621  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-26 03:13:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						fa1eb27b76 
					 
					
						
						
							
							Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-08 22:13:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						597a3bde35 
					 
					
						
						
							
							Fix for PR1108: type of insert_vector_elt index operand is PtrVT, not MVT::i32.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33398  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-20 10:10:26 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						42d7ccfd8e 
					 
					
						
						
							
							Remove this xform:  
						
						... 
						
						
						
						(shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)
Replace it with:
(add (shl (add x, c1), c2), ) -> (add (add (shl x, c2), c1<<c2), )
This fixes test/CodeGen/ARM/smul.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33361  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-19 17:51:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c4e664bb9d 
					 
					
						
						
							
							Fix PR1114 and CodeGen/Generic/2007-01-15-LoadSelectCycle.ll by being  
						
						... 
						
						
						
						careful when folding "c ? load p : load q" that C doesn't reach either load.
If so, folding this into load (c ? p : q) will induce a cycle in the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-16 05:59:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						938ab02256 
					 
					
						
						
							
							add options to view the dags before the first or second pass of dag combine.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33249  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-16 04:55:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ddae4bd683 
					 
					
						
						
							
							Implement some trivial FP foldings when -enable-unsafe-fp-math is specified.  
						
						... 
						
						
						
						This implements CodeGen/PowerPC/unsafe-math.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33024  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-08 23:04:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cd3245ac45 
					 
					
						
						
							
							Eliminate static ctors from Statistics  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-19 22:41:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e90460ee9a 
					 
					
						
						
							
							Cannot combine an indexed load / store any further.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32629  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-16 06:25:23 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						f6c4ccfaab 
					 
					
						
						
							
							This code was usurping the sextload expand in teh legalizer.  Just make  
						
						... 
						
						
						
						sure the right conditions are checked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32611  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-15 21:38:30 +00:00