Chris Lattner 
							
						 
					 
					
						
						
							
						
						15e4b01920 
					 
					
						
						
							
							Introduce a new VTSDNode class with the ultimate goal of eliminating the  
						
						... 
						
						
						
						MVTSDNode class.  This class is used to provide an operand to operators
that require an extra type.  We start by converting FP_ROUND_INREG and
SIGN_EXTEND_INREG over to using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22364  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-10 00:07:11 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						06ef88472f 
					 
					
						
						
							
							restore old srcValueNode behavior and try to to work around it  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22315  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-29 18:54:02 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						782ad62f33 
					 
					
						
						
							
							tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22311  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-29 15:57:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						41aaf7016e 
					 
					
						
						
							
							Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for  
						
						... 
						
						
						
						integer types.  Add a couple checks to not perform these kinds of transform
on floating point values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22228  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-16 07:06:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e5eb6f829c 
					 
					
						
						
							
							Add some simplifications for MULH[SU].  This allows us to compile this:  
						
						... 
						
						
						
						long %bar(long %X) {
  %Y = mul long %X, 4294967297
  ret long %Y
}
to this:
l1_bar:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %EDX, %EAX
        add %EDX, DWORD PTR [%ESP + 8]
        ret
instead of:
l1_bar:
        mov %ECX, DWORD PTR [%ESP + 4]
        mov %EDX, 1
        mov %EAX, %ECX
        mul %EDX
        add %EDX, %ECX
        add %EDX, DWORD PTR [%ESP + 8]
        mov %EAX, %ECX
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22044  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-15 05:39:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3e01136f9f 
					 
					
						
						
							
							remove special case hacks for readport/readio from the binary operator  
						
						... 
						
						
						
						codepath
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22019  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 07:45:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						385328ce41 
					 
					
						
						
							
							Implement fixme's by memoizing nodes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22018  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 07:42:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b7f7d51422 
					 
					
						
						
							
							Turn this into a wrapper for a simpler version of getNode.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22016  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 07:32:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						adf6c2a0cb 
					 
					
						
						
							
							Eliminate special purpose hacks for dynamic_stack_alloc.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22015  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 07:29:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e89083a930 
					 
					
						
						
							
							Use the general mechanism for creating multi-value nodes instead of using  
						
						... 
						
						
						
						special case hacks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22014  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 07:25:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5fa4fa4e0f 
					 
					
						
						
							
							Wrap long line, actually add node to the graph.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22011  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 06:42:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						89c34637cb 
					 
					
						
						
							
							add a getNode() version that allows construction of any node type.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-14 06:20:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d71c04199c 
					 
					
						
						
							
							Handle TAILCALL node  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21957  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-13 18:43:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a364fa126a 
					 
					
						
						
							
							fix a bad typeo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21917  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-12 23:51:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						16cd04d26c 
					 
					
						
						
							
							rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21915  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-12 23:24:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6980d8295f 
					 
					
						
						
							
							handle a common case generated by the uint64 -> FP code path better  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21888  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-12 06:27:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						88de6e77bf 
					 
					
						
						
							
							Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21882  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-12 00:17:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						27e9b41464 
					 
					
						
						
							
							Do not memoize ADJCALLSTACKDOWN nodes, provide a method to hack on them.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21871  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-11 18:57:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						276260b16d 
					 
					
						
						
							
							Print bit count nodes correctly  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21855  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-11 04:50:30 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						19bb2283e6 
					 
					
						
						
							
							Silence some VC++ warnings  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21838  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-10 02:22:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3c6910153c 
					 
					
						
						
							
							Add support for READPORT, WRITEPORT, READIO, WRITEIO  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21824  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-09 20:22:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						57aa5961a9 
					 
					
						
						
							
							Fold shifts into subsequent SHL's.  These shifts often arise due to addrses  
						
						... 
						
						
						
						arithmetic lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21818  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-09 17:06:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fd414a27fd 
					 
					
						
						
							
							Don't use the load/store instruction as the source pointer, use the pointer  
						
						... 
						
						
						
						being stored/loaded through!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21806  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-09 04:28:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0437cdd6dc 
					 
					
						
						
							
							memoize all nodes, even null Value* nodes.  Do not add two token chain outputs  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21805  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-09 04:14:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2bf3c26b2b 
					 
					
						
						
							
							Print SrcValue nodes correctly  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21803  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-09 04:08:27 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						691ef2ba06 
					 
					
						
						
							
							Implement count leading zeros (ctlz), count trailing zeros (cttz), and count  
						
						... 
						
						
						
						population (ctpop).  Generic lowering is implemented, however only promotion
is implemented for SelectionDAG at the moment.
More coming soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-05-03 17:19:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7f64464ff1 
					 
					
						
						
							
							Add FSQRT, FSIN, FCOS nodes, patch contributed by Morten Ofstad  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21605  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-28 21:44:03 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						2d86ea21dd 
					 
					
						
						
							
							Implement Value* tracking for loads and stores in the selection DAG.  This enables one to use alias analysis in the backends.  
						
						... 
						
						
						
						(TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*.  Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-27 20:10:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d36f979085 
					 
					
						
						
							
							Fold  (X >  -1) | (Y >  -1)  -->   (X&Y >  -1)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21552  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-26 01:18:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						229ab2e7b2 
					 
					
						
						
							
							implement some more logical compares with constants, so that:  
						
						... 
						
						
						
						int foo1(int x, int y) {
  int t1 = x >= 0;
  int t2 = y >= 0;
  return t1 & t2;
}
int foo2(int x, int y) {
  int t1 = x == -1;
  int t2 = y == -1;
  return t1 & t2;
}
produces:
_foo1:
        or r2, r4, r3
        srwi r2, r2, 31
        xori r3, r2, 1
        blr
_foo2:
        and r2, r4, r3
        addic r2, r2, 1
        li r2, 0
        addze r3, r2
        blr
instead of:
_foo1:
        srwi r2, r4, 31
        xori r2, r2, 1
        srwi r3, r3, 31
        xori r3, r3, 1
        and r3, r2, r3
        blr
_foo2:
        addic r2, r4, 1
        li r2, 0
        addze r2, r2
        addic r3, r3, 1
        li r3, 0
        addze r3, r3
        and r3, r2, r3
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21547  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-25 21:20:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6ea9279304 
					 
					
						
						
							
							Codegen x < 0 | y < 0 as (x|y) < 0.  This allows us to compile this to:  
						
						... 
						
						
						
						_foo:
        or r2, r4, r3
        srwi r3, r2, 31
        blr
instead of:
_foo:
        srwi r2, r4, 31
        srwi r3, r3, 31
        or r3, r2, r3
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-25 21:03:25 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						dedf2bd5a3 
					 
					
						
						
							
							Convert tabs to spaces  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-22 04:01:18 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						edf128a7fa 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 22:36:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						588bbbffa1 
					 
					
						
						
							
							Improve and elimination.  On PPC, for:  
						
						... 
						
						
						
						bool %test(int %X) {
        %Y = and int %X, 8
        %Z = setne int %Y, 0
        ret bool %Z
}
we now generate this:
        rlwinm r2, r3, 0, 28, 28
        srwi r3, r2, 3
instead of this:
        rlwinm r2, r3, 0, 28, 28
        srwi r2, r2, 3
        rlwinm r3, r2, 0, 31, 31
I'll leave it to Nate to get it down to one instruction. :)
---------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21391  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 06:28:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1c2a9b95dc 
					 
					
						
						
							
							Fold (x & 8) != 0 and (x & 8) == 8  into (x & 8) >> 3.  
						
						... 
						
						
						
						This turns this PPC code:
        rlwinm r2, r3, 0, 28, 28
        cmpwi cr7, r2, 8
        mfcr r2
        rlwinm r3, r2, 31, 31, 31
into this:
        rlwinm r2, r3, 0, 28, 28
        srwi r2, r2, 3
        rlwinm r3, r2, 0, 31, 31
Next up, nuking the extra and.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21390  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 06:12:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fda2b55e1b 
					 
					
						
						
							
							Fold setcc of MVT::i1 operands into logical operations  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21319  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-18 04:48:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4a44c8df19 
					 
					
						
						
							
							Another minor simplification: handle setcc (zero_extend x), c -> setcc(x, c')  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-18 04:30:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7467c9b086 
					 
					
						
						
							
							Another simple xform  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21317  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-18 04:11:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						706aa9685a 
					 
					
						
						
							
							Fold:  
						
						... 
						
						
						
						// (X != 0) | (Y != 0) -> (X|Y != 0)
        // (X == 0) & (Y == 0) -> (X|Y == 0)
Compiling this:
int %bar(int %a, int %b) {
        entry:
        %tmp.1 = setne int %a, 0
        %tmp.2 = setne int %b, 0
        %tmp.3 = or bool %tmp.1, %tmp.2
        %retval = cast bool %tmp.3 to int
        ret int %retval
        }
to this:
_bar:
        or r2, r3, r4
        addic r3, r2, -1
        subfe r3, r3, r2
        blr
instead of:
_bar:
        addic r2, r3, -1
        subfe r2, r2, r3
        addic r3, r4, -1
        subfe r3, r3, r4
        or r3, r2, r3
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21316  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-18 03:59:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						36019aa5c6 
					 
					
						
						
							
							Make the AND elimination operation recursive and significantly more powerful,  
						
						... 
						
						
						
						eliminating an and for Nate's testcase:
int %bar(int %a, int %b) {
        entry:
        %tmp.1 = setne int %a, 0
        %tmp.2 = setne int %b, 0
        %tmp.3 = or bool %tmp.1, %tmp.2
        %retval = cast bool %tmp.3 to int
        ret int %retval
        }
generating:
_bar:
        addic r2, r3, -1
        subfe r2, r2, r3
        addic r3, r4, -1
        subfe r3, r3, r4
        or r3, r2, r3
        blr
instead of:
_bar:
        addic r2, r3, -1
        subfe r2, r2, r3
        addic r3, r4, -1
        subfe r3, r3, r4
        or r2, r2, r3
        rlwinm r3, r2, 0, 31, 31
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21315  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-18 03:48:41 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						72ea281d61 
					 
					
						
						
							
							Add a couple missing transforms in getSetCC that were triggering assertions  
						
						... 
						
						
						
						in the PPC Pattern ISel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21297  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-14 08:56:52 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						eea805e74c 
					 
					
						
						
							
							Disbale the broken fold of shift + sz[ext] for now  
						
						... 
						
						
						
						Move the transform for select (a < 0) ? b : 0 into the dag from ppc isel
Enable the dag to fold and (setcc, 1) -> setcc for targets where setcc
  always produces zero or one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21291  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 21:23:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						97e001dec7 
					 
					
						
						
							
							fix an infinite loop  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21289  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 20:06:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fd8d389ede 
					 
					
						
						
							
							fix some serious miscompiles on ia64, alpha, and ppc  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21288  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 19:53:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						51679c430f 
					 
					
						
						
							
							avoid work when possible, perhaps fix the problem nate and andrew are seeing  
						
						... 
						
						
						
						with != 0 comparisons vanishing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21287  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 19:41:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e666fcfbdd 
					 
					
						
						
							
							add back the optimization that Nate added for shl X, (zext_inreg y)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21273  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 02:58:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a8dbfa57c 
					 
					
						
						
							
							Oops, remove these too.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21272  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 02:47:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0f2287baa1 
					 
					
						
						
							
							Remove all foldings of ZERO_EXTEND_INREG, moving them to work for AND nodes  
						
						... 
						
						
						
						instead.  OVerall, this increases the amount of folding we can do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21265  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-13 02:38:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						db81ebab89 
					 
					
						
						
							
							Fold shift x, [sz]ext(y) -> shift x, y  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21262  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-12 23:32:28 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						b882752bd0 
					 
					
						
						
							
							Fold shift by size larger than type size to undef  
						
						... 
						
						
						
						Make llvm undef values generate ISD::UNDEF nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21261  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-12 23:12:17 +00:00