Chris Lattner 
							
						 
					 
					
						
						
							
						
						94683777ae 
					 
					
						
						
							
							constant fold bits_convert in getNode and in the dag combiner for fp<->int  
						
						... 
						
						
						
						conversions.  This allows V8 to compiles this:
void %test() {
        call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null )
        ret void
}
into:
test:
        save -96, %o6, %o6
        sethi 0, %o3
        sethi 1049088, %o2
        sethi 1048576, %o1
        sethi 1040384, %o0
        or %g0, %o3, %o4
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop
instead of:
test:
        save -112, %o6, %o6
        sethi 0, %o4
        sethi 1049088, %l0
        st %o4, [%i6+-12]
        st %l0, [%i6+-16]
        ld [%i6+-12], %o3
        ld [%i6+-16], %o2
        sethi 1048576, %o1
        sethi 1040384, %o0
        call test2
        nop
        restore %g0, %g0, %g0
        retl
        nop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24980  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-23 05:30:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						35481892da 
					 
					
						
						
							
							add very simple support for the BIT_CONVERT node  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24970  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-23 00:16:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0fcd40f501 
					 
					
						
						
							
							remove dead code  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24965  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-22 21:16:08 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7226158d7e 
					 
					
						
						
							
							Added a hook to print out names of target specific DAG nodes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24877  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-20 06:22:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						115c036a4c 
					 
					
						
						
							
							Print out opcode number if it's an unknown target node.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24869  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-19 23:11:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9f8cc69009 
					 
					
						
						
							
							Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes,  
						
						... 
						
						
						
						creating graphs that cannot be scheduled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24866  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-19 22:21:21 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						f5395cee6a 
					 
					
						
						
							
							Added source file/line correspondence for dwarf (PowerPC only at this point.)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-16 22:45:29 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7038daf342 
					 
					
						
						
							
							Added new getNode and getTargetNode variants for X86 stores.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24653  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-10 00:37:58 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						8cfa57b1b4 
					 
					
						
						
							
							Teach the SelectionDAG ISel how to turn ConstantPacked values into  
						
						... 
						
						
						
						constant nodes with vector types.  Also teach the asm printer how to print
ConstantPacked constant pool entries.  This allows us to generate altivec
code such as the following, which adds a vector constantto a packed float.
LCPI1_0:  <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 >
        .space  4
        .space  4
        .space  4
        .long   1065353216      ; float 1
        .text
        .align  4
        .globl  _foo
_foo:
        lis r2, ha16(LCPI1_0)
        la r2, lo16(LCPI1_0)(r2)
        li r4, 0
        lvx v0, r4, r2
        lvx v1, r4, r3
        vaddfp v0, v1, v0
        stvx v0, r4, r3
        blr
For the llvm code:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 >
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-06 06:18:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fe14b34d83 
					 
					
						
						
							
							Don't remove two operand, two result nodes from the binary ops map.  These  
						
						... 
						
						
						
						should come from the arbitrary ops map.
This fixes Regression/CodeGen/PowerPC/2005-12-01-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24571  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-01 23:14:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c5e6c649b5 
					 
					
						
						
							
							This is a bugfix for SelectNodeTo.  In certain situations, we could be  
						
						... 
						
						
						
						selecting a node and use a mix of getTargetNode() and SelectNodeTo.  Because
SelectNodeTo didn't check the CSE maps for a preexisting node and didn't insert
its result into the CSE maps, we would sometimes miss a CSE opportunity.
This is extremely rare, but worth fixing for completeness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24565  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-12-01 18:00:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb19e40efb 
					 
					
						
						
							
							Make SelectNodeTo return N  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24548  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-30 22:45:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c85a9f37e9 
					 
					
						
						
							
							CALLSEQ_START/END nodes don't get memoized, do not add them in when  
						
						... 
						
						
						
						replaceAllUses'ing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24539  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-30 18:20:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						14229bb636 
					 
					
						
						
							
							Fixed a bug introduced by my last commit: TargetGlobalValues should key on  
						
						... 
						
						
						
						GlobalValue * and index pair. Update getGlobalAddress() for symmetry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24524  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-30 02:49:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						61ca74bc3a 
					 
					
						
						
							
							Added an index field to GlobalAddressSDNode so it can represent X+12, etc.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24523  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-30 02:04:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						36ce69195e 
					 
					
						
						
							
							Add support for a new STRING and LOCATION node for line number support, patch  
						
						... 
						
						
						
						contributed by Daniel Berlin, with a few cleanups here and there by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24515  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-29 06:21:05 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						ab48be3772 
					 
					
						
						
							
							Check in code to scalarize arbitrarily wide packed types for some simple  
						
						... 
						
						
						
						vector operations (load, add, sub, mul).
This allows us to codegen:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, %tmp1
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}
on ppc as:
_foo:
        lfs f0, 12(r3)
        lfs f1, 8(r3)
        lfs f2, 4(r3)
        lfs f3, 0(r3)
        fadds f0, f0, f0
        fadds f1, f1, f1
        fadds f2, f2, f2
        fadds f3, f3, f3
        stfs f0, 12(r3)
        stfs f1, 8(r3)
        stfs f2, 4(r3)
        stfs f3, 0(r3)
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-22 18:16:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0fb094fd60 
					 
					
						
						
							
							Add some method variants, patch by Evan Cheng  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-19 01:44:53 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						5fbb5d2459 
					 
					
						
						
							
							Teach LLVM how to scalarize packed types.  Currently, this only works on  
						
						... 
						
						
						
						packed types with an element count of 1, although more generic support is
coming.  This allows LLVM to turn the following code:
void %foo(<1 x float> * %a) {
entry:
  %tmp1 = load <1 x float> * %a;
  %tmp2 = add <1 x float> %tmp1, %tmp1
  store <1 x float> %tmp2, <1 x float> *%a
  ret void
}
Into:
_foo:
        lfs f0, 0(r3)
        fadds f0, f0, f0
        stfs f0, 0(r3)
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-19 00:36:38 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						51b8d54922 
					 
					
						
						
							
							continued readcyclecounter support  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-11 16:47:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						de202b3cda 
					 
					
						
						
							
							Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding  
						
						... 
						
						
						
						nodes to the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24263  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-09 23:47:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a32551197a 
					 
					
						
						
							
							Change the ValueList array for each node to be shared instead of individuallyallocated.  Further, in the common case where a node has a single value, justreference an element from a small array.  This is a small compile-time win.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-08 23:30:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						65113b2f86 
					 
					
						
						
							
							Switch the operandlist/valuelist from being vectors to being just an array.This saves 12 bytes from SDNode, but doesn't speed things up substantially  
						
						... 
						
						
						
						(our graphs apparently already fit within the cache on my g5).  In any case
this reduces memory usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24249  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-08 22:07:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f469cb6546 
					 
					
						
						
							
							Clean up RemoveDeadNodes significantly, by eliminating the need for a temporary  
						
						... 
						
						
						
						set and eliminating the need to iterate whenever something is removed (which
can be really slow in some cases).  Thx to Jim for pointing out something silly
I was getting stuck on. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24241  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-08 18:52:27 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						2a2de66db2 
					 
					
						
						
							
							add TargetExternalSymbol  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23886  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-23 03:40:17 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						ded4963ab9 
					 
					
						
						
							
							Move some Legalize functionality over to the DAGCombiner where it belongs.  
						
						... 
						
						
						
						Kill some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23706  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-13 03:11:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3892560680 
					 
					
						
						
							
							This function is now dead  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23684  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-10 16:49:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						af21d55aee 
					 
					
						
						
							
							Enable Nate's excellent DAG combiner work by default.  This allows the  
						
						... 
						
						
						
						removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23682  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-10 16:47:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ee899e6bfc 
					 
					
						
						
							
							(X & Y) & C == 0 if either X&C or Y&C are zero  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-09 22:12:36 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9a9719eea1 
					 
					
						
						
							
							remove debugging code  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23663  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-07 15:31:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c4ced268d8 
					 
					
						
						
							
							implement CodeGen/PowerPC/div-2.ll:test2-4 by propagating zero bits through  
						
						... 
						
						
						
						C-X's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-07 15:30:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6c4dad0b8b 
					 
					
						
						
							
							fix indentation  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23660  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-07 06:37:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						094c8fcd14 
					 
					
						
						
							
							Turn sdivs into udivs when we can prove the sign bits are clear.  This  
						
						... 
						
						
						
						implements CodeGen/PowerPC/div-2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-07 06:10:46 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						0558f61b0c 
					 
					
						
						
							
							Let the combiner handle more cases  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23641  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-05 21:44:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3ea0b47f81 
					 
					
						
						
							
							implement visitBR_CC so that PowerPC/inverted-bool-compares.ll passes  
						
						... 
						
						
						
						with the dag combiner.  This speeds up espresso by 8%, reaching performance
parity with the dag-combiner-disabled llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23636  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-05 06:47:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ad13715ed4 
					 
					
						
						
							
							fix some pastos  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23635  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-05 06:37:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9503859c54 
					 
					
						
						
							
							Add a new HandleNode class, which is used to handle (haha) cases in the  
						
						... 
						
						
						
						dead node elim and dag combiner passes where the root is potentially updated.
This fixes a fixme in the dag combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23634  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-05 06:35:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						01b3d73c20 
					 
					
						
						
							
							Add FP versions of the binary operators, keeping the int and fp worlds seperate.  
						
						... 
						
						
						
						Though I have done extensive testing, it is possible that this will break
things in configs I can't test.  Please let me know if this causes a problem
and I'll fix it ASAP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23504  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-28 22:28:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5ae7911b24 
					 
					
						
						
							
							Turn (X^C1) == C2 into X == C1^C2 iff X&~C1 = 0 (and move a function)  
						
						... 
						
						
						
						This happens all the time on PPC for bool values, e.g. eliminating a xori
in inverted-bool-compares.ll.
This should be added to the dag combiner as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23403  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-23 00:55:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3ec5d74fc5 
					 
					
						
						
							
							Fix a problem duraid encountered on itanium where this folding:  
						
						... 
						
						
						
						select (x < y), 1, 0 -> (x < y) incorrectly: the setcc returns i1 but the
select returned i32.  Add the zero extend as needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23301  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-09 23:00:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						08addbd477 
					 
					
						
						
							
							Fix a crash viewing dags that have target nodes in them  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23300  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-09 22:35:03 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						39ee1ac7e5 
					 
					
						
						
							
							Last round of 2-node folds from SD.cpp.  Will  move on to 3 node ops such  
						
						... 
						
						
						
						as setcc and select next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23295  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-09 19:49:52 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						223df2269d 
					 
					
						
						
							
							Move yet more folds over to the dag combiner from sd.cpp  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23278  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-08 20:18:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						9980119270 
					 
					
						
						
							
							Another round of dag combiner changes.  This fixes some missing XOR folds  
						
						... 
						
						
						
						as well as fixing how we replace old values with new values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23260  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-07 23:25:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1e111c7bbb 
					 
					
						
						
							
							Fix a bug nate ran into with replacealluseswith.  In the recursive cse case,  
						
						... 
						
						
						
						we were losing a node, causing an assertion to fail.  Now we eagerly delete
discovered CSE's, and provide an optional vector to keep track of these
discovered equivalences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23255  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-07 05:37:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6a8a21ced4 
					 
					
						
						
							
							Fix a checking failure in gs  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23235  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-03 01:04:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						70b9b1098a 
					 
					
						
						
							
							Make sure to auto-cse nullary ops  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 19:36:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6621e3b963 
					 
					
						
						
							
							Fix some buggy logic where we would try to remove nodes with two operands  
						
						... 
						
						
						
						from the binary ops map, even if they had multiple results.  This latent bug
caused a few failures with the dag isel last night.
To prevent stuff like this from happening in the future, add some really
strict checking to make sure that the CSE maps always match up with reality!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23221  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 19:15:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ed11b4b79 
					 
					
						
						
							
							Add support for ANY_EXTEND and add a few minor folds for it  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23203  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 00:17:32 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						39f60a2302 
					 
					
						
						
							
							Fix some code in the current node combining code, spotted when it was moved  
						
						... 
						
						
						
						over to DAGCombiner.cpp
1. Don't assume that SetCC returns i1 when folding (xor (setcc) constant)
2. Don't duplicate code in folding AND with AssertZext that is handled by
   MaskedValueIsZero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 23:25:49 +00:00