Nate Begeman 
							
						 
					 
					
						
						
							
						
						83e75ecd27 
					 
					
						
						
							
							Next round of DAGCombiner changes.  This version now passes all the tests  
						
						 
						
						... 
						
						
						
						I have run so far when run before Legalize.  It still needs to pick up the
SetCC folds, and nodes that use SetCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23243  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-06 04:43:02 +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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						646d7e2727 
					 
					
						
						
							
							Next round of DAG Combiner changes.  Just need to support multiple return  
						
						 
						
						... 
						
						
						
						values, and then we should be able to hook it up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23231  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 21:18:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6fdcb250d5 
					 
					
						
						
							
							Clean up some code from the last checkin  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23229  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 20:32:45 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						99c25b86aa 
					 
					
						
						
							
							Fix a bug in legalize where it would emit two calls to libcalls that return  
						
						 
						
						... 
						
						
						
						i64 values on targets that need that expanded to 32-bit registers.  This fixes
PowerPC/2005-09-02-LegalizeDuplicatesCalls.ll and speeds up 189.lucas from
taking 122.72s to 81.96s on my desktop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23228  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 20:26:58 +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 
							
						 
					 
					
						
						
							
						
						fd88f64934 
					 
					
						
						
							
							Don't create zero sized stack objects even for array allocas with a zero  
						
						 
						
						... 
						
						
						
						number of elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23219  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 18:41:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a639a43602 
					 
					
						
						
							
							Fix the release build, noticed by Eric van Riet Paap  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23215  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 07:09:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						08951a32fb 
					 
					
						
						
							
							Make sure to legalize assert[zs]ext's operand correctly  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23208  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 01:15:01 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fab08875b7 
					 
					
						
						
							
							For values that are live across basic blocks and need promotion, use ANY_EXTEND  
						
						 
						
						... 
						
						
						
						instead of ZERO_EXTEND to eliminate extraneous extensions.  This eliminates
dead zero extensions on formal arguments and other cases on PPC, implementing
the newly tightened up test/Regression/CodeGen/PowerPC/small-arguments.ll test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23205  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 00:19:37 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						13c78e2e5f 
					 
					
						
						
							
							legalize ANY_EXTEND appropriately  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23204  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 00:18:10 +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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						4ebd805c6a 
					 
					
						
						
							
							Implement first round of feedback from chris (there's still a couple things  
						
						 
						
						... 
						
						
						
						left to do).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23195  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 23:24:04 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						da8abb0239 
					 
					
						
						
							
							It is NDEBUG not _NDEBUG  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23186  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 18:44:10 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						4942a9687d 
					 
					
						
						
							
							Add the rest of the currently implemented visit routines to the switch  
						
						 
						
						... 
						
						
						
						statement in visit().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23185  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 00:33:32 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						1d4d414111 
					 
					
						
						
							
							First pass at the DAG Combiner.  It isn't used anywhere yet, but it should  
						
						 
						
						... 
						
						
						
						be mostly functional.  It currently has all folds from SelectionDAG.cpp
that do not involve a condition code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23184  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 00:19:25 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						50ec897904 
					 
					
						
						
							
							Allow targets to custom expand shifts that are too large for their registers  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23173  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 19:01:53 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						7383ce4127 
					 
					
						
						
							
							Fix VC++ precedence warnings  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23169  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 02:47:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						fe75a2836a 
					 
					
						
						
							
							Sigh, not my day.  Fix typo.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23166  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 00:43:49 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						9f52f2838d 
					 
					
						
						
							
							Fix a mistake in my previous patch pointed out by sabre; the AssertZext  
						
						 
						
						... 
						
						
						
						case in MaskedValueIsZero was wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23165  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 00:43:08 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						b85dfab889 
					 
					
						
						
							
							Remove some unnecessary casts, and add the AssertZext case to  
						
						 
						
						... 
						
						
						
						MaskedValueIsZero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23164  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 00:27:53 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0fdd768094 
					 
					
						
						
							
							Allow physregs to occur in the dag with multiple types.  Though I don't likethis, it is a requirement on PPC, which can have an f32 value in r3 at onepoint in a function and a f64 value in r3 at another point.  :(  
						
						 
						
						... 
						
						
						
						This fixes compilation of mesa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23161  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 22:38:38 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cc0675a4be 
					 
					
						
						
							
							Fix FreeBench/fourinarow with the dag isel, by not adding a bogus result  
						
						 
						
						... 
						
						
						
						to SHIFT_PARTS nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23151  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 17:21:17 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ec176e30d6 
					 
					
						
						
							
							Fix a miscompile of PtrDist/bc.  Sign extending bools is not the right thing,  
						
						 
						
						... 
						
						
						
						at least tends to expose problems elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23149  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 16:56:19 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						5ffcd9b56c 
					 
					
						
						
							
							Remove a bogus piece of my AssertSext/AssertZext patch.  oops.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23148  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 02:54:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						56eb86806d 
					 
					
						
						
							
							Add support for AssertSext and AssertZext, folding other extensions with  
						
						 
						
						... 
						
						
						
						them.  This allows for elminination of redundant extends in the entry
blocks of functions on PowerPC.
Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs
to ISD::MUL in ExpandOp are actually just extended i32 values and not real
i64 values.  this allows us to codegen
int mulhs(int a, int b) { return ((long long)a * b) >> 32; }
as:
_mulhs:
        mulhw r3, r4, r3
        blr
instead of:
_mulhs:
        mulhwu r2, r4, r3
        srawi r5, r3, 31
        mullw r5, r4, r5
        add r2, r2, r5
        srawi r4, r4, 31
        mullw r3, r4, r3
        add r3, r2, r3
        blr
with a similar improvement on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23147  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 02:44:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f155635b53 
					 
					
						
						
							
							Name this variable to be what it really is!  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23145  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 01:58:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						55334fc45c 
					 
					
						
						
							
							Handle CopyToReg nodes with flag operands correctly  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23144  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 01:57:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						82e14db9a9 
					 
					
						
						
							
							Add a hack to avoid some horrible code in some cases by always emitting  
						
						 
						
						... 
						
						
						
						token chains first.  For this C function:
int test() {
  int i;
  for (i = 0; i < 100000; ++i)
    foo();
}
Instead of emitting this (condition before call)
.LBB_test_1:    ; no_exit
        addi r30, r30, 1
        lis r2, 1
        ori r2, r2, 34464
        cmpw cr2, r30, r2
        bl L_foo$stub
        bne cr2, .LBB_test_1    ; no_exit
Emit this:
.LBB_test_1:    ; no_exit
        bl L_foo$stub
        addi r30, r30, 1
        lis r2, 1
        ori r2, r2, 34464
        cmpw cr0, r30, r2
        bne cr0, .LBB_test_1    ; no_exit
Which makes it so we don't have to save/restore cr2 in the prolog/epilog of
the function.
This also makes the code much more similar to what the pattern isel produces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-29 23:21:29 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c26aefa15a 
					 
					
						
						
							
							Add a new API for Nate  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23131  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-29 21:59:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						5e3efbc2ca 
					 
					
						
						
							
							Some of us cared about the the promote path  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23130  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-29 20:46:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						507f752f6e 
					 
					
						
						
							
							Fix an infinite loop on x86  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23129  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-29 17:30:00 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ff01698ec0 
					 
					
						
						
							
							Fix a bug in ReplaceAllUsesWith  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23122  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-28 23:59:36 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						0f9beca707 
					 
					
						
						
							
							Change the names of member variables per Chris' instructions, and document  
						
						 
						
						... 
						
						
						
						them more clearly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23118  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-27 19:09:02 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						88b9c15912 
					 
					
						
						
							
							Disable this code, which broke many tests last night  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23114  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-27 16:16:51 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						620c93cca1 
					 
					
						
						
							
							fix PHI node emission for basic blocks that have select_cc's in them on ppc32  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23113  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-27 00:58:02 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb150d7d1f 
					 
					
						
						
							
							Nate noticed that Andrew never did this.  This fixes PR600  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23110  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 22:50:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9d3a483a38 
					 
					
						
						
							
							Don't copy regs that are only used in the entry block into a vreg.  This  
						
						 
						
						... 
						
						
						
						changes the code generated for:
short %test(short %A) {
  %B = xor short %A, -32768
  ret short %B
}
to:
_test:
        xori r2, r3, 32768
        xoris r2, r2, 65535
        extsh r3, r2
        blr
instead of:
_test:
        rlwinm r2, r3, 0, 16, 31
        xori r2, r3, 32768
        xoris r2, r2, 65535
        extsh r3, r2
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23109  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 22:49:59 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						579cfabdad 
					 
					
						
						
							
							Checking types here is not safe, because multiple types can map to the same  
						
						 
						
						... 
						
						
						
						register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23103  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 21:39:15 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						025c39bf36 
					 
					
						
						
							
							Call the InsertAtEndOfBasicBlock hook if the usesCustomDAGSchedInserter  
						
						 
						
						... 
						
						
						
						flag is set on an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23098  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 20:54:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8b52f21f10 
					 
					
						
						
							
							Revampt ReplaceAllUsesWith to be more efficient and easier to use.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23087  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 18:36:28 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5839bf2b3b 
					 
					
						
						
							
							Change ConstantPoolSDNode to actually hold the Constant itself instead of  
						
						 
						
						... 
						
						
						
						putting it into the constant pool.  This allows the isel machinery to
create constants that it will end up deciding are not needed, without them
ending up in the resultant function constant pool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23081  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 17:15:30 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2bb06cdf27 
					 
					
						
						
							
							Fix a huge annoyance: SelectNodeTo took types before the opcode unlike  
						
						 
						
						... 
						
						
						
						every other SD API.  Fix it to take the opcode before the types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23079  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 16:36:26 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d7050a9c50 
					 
					
						
						
							
							the 5th operand is the 4th number  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23074  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 00:43:46 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						23004e5f21 
					 
					
						
						
							
							Add support for targets that want to custom expand select_cc in some cases.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23071  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 00:23:59 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						07dffd6af6 
					 
					
						
						
							
							Allow LowerOperation to return a null SDOperand in case it wants to lower  
						
						 
						
						... 
						
						
						
						some things given to it, but not all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23070  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 00:14:16 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f07d023dd9 
					 
					
						
						
							
							Fix a nasty bug from a previous patch of mine  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23069  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 00:13:12 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						1999b4b974 
					 
					
						
						
							
							New fold for SELECT_CC  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23058  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-25 20:04:38 +00:00