Chris Lattner 
							
						 
					 
					
						
						
							
						
						fa28bb4601 
					 
					
						
						
							
							This was not meant to be committed  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13565  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-13 20:56:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						82fec4e31d 
					 
					
						
						
							
							Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow  
						
						... 
						
						
						
						in the size calculation.
This is not something you want to see:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - UNROLLING!
The problem was that 2*2147483648 == 0.
Now we get:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - TOO LARGE: 4294967296>100
Thanks to some anonymous person playing with the demo page that repeatedly
caused zion to go into swapping land.  That's one way to ensure you'll get
a quick bugfix.  :)
Testcase here: Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13564  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-13 20:43:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						be97b4e9ab 
					 
					
						
						
							
							Fix stupid bug in my checkin yesterday  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13429  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-08 22:41:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						620ce14666 
					 
					
						
						
							
							Implement folding of GEP's like:  
						
						... 
						
						
						
						%tmp.0 = getelementptr [50 x sbyte]* %ar, uint 0, int 5         ; <sbyte*> [#uses=2]
        %tmp.7 = getelementptr sbyte* %tmp.0, int 8             ; <sbyte*> [#uses=1]
together.  This patch actually allows us to simplify and generalize the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13415  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-07 22:09:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						546516c3c0 
					 
					
						
						
							
							Fix PR336: The instcombine pass asserts when visiting load instruction  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13400  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-07 15:35:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						32ed46b36e 
					 
					
						
						
							
							Minor efficiency tweak, suggested by Patrick Meredith  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13341  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-04 15:19:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						00d513182d 
					 
					
						
						
							
							Make sure to reprocess instructions used by deleted instructions to avoid  
						
						... 
						
						
						
						missing opportunities for combination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-01 23:27:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						216d4d85fd 
					 
					
						
						
							
							Make sure the instruction combiner doesn't lose track of instructions  
						
						... 
						
						
						
						when replacing them, missing the opportunity to do simplifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13308  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-01 23:19:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c1526a9da1 
					 
					
						
						
							
							Fix a major pessimization in the instcombiner.  If an allocation instruction  
						
						... 
						
						
						
						is only used by a cast, and the casted type is the same size as the original
allocation, it would eliminate the cast by folding it into the allocation.
Unfortunately, it was placing the new allocation instruction right before
the cast, which could pull (for example) alloca instructions into the body
of a function.  This turns statically allocatable allocas into expensive
dynamically allocated allocas, which is bad bad bad.
This fixes the problem by placing the new allocation instruction at the same
place the old one was, duh. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13289  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-30 04:37:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6ffe551f65 
					 
					
						
						
							
							Changes to fix up the inst_iterator to pass to boost iterator checks.  This  
						
						... 
						
						
						
						patch was graciously contributed by Vladimir Prus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13185  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-27 15:13:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						83a2e6e4a1 
					 
					
						
						
							
							Instcombine X/-1 --> 0-X  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13172  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-26 14:01:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4f1134e51a 
					 
					
						
						
							
							Fix a HUGE pessimization on X86.  The indvars pass was taking this  
						
						... 
						
						
						
						(familiar) function:
int _strlen(const char *str) {
    int len = 0;
    while (*str++) len++;
    return len;
}
And transforming it to use a ulong induction variable, because the type of
the pointer index was left as a constant long.  This is obviously very bad.
The fix is to shrink long constants in getelementptr instructions to intptr_t,
making the indvars pass insert a uint induction variable, which is much more
efficient.
Here's the before code for this function:
int %_strlen(sbyte* %str) {
entry:
        %tmp.13 = load sbyte* %str              ; <sbyte> [#uses=1]
        %tmp.24 = seteq sbyte %tmp.13, 0                ; <bool> [#uses=1]
        br bool %tmp.24, label %loopexit, label %no_exit
no_exit:                ; preds = %entry, %no_exit
***     %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=2]
***     %indvar = phi ulong [ %indvar.next, %no_exit ], [ 0, %entry ]           ; <ulong> [#uses=2]
        %indvar1 = cast ulong %indvar to uint           ; <uint> [#uses=1]
        %inc.02.sum = add uint %indvar1, 1              ; <uint> [#uses=1]
        %inc.0.0 = getelementptr sbyte* %str, uint %inc.02.sum          ; <sbyte*> [#uses=1]
        %tmp.1 = load sbyte* %inc.0.0           ; <sbyte> [#uses=1]
        %tmp.2 = seteq sbyte %tmp.1, 0          ; <bool> [#uses=1]
        %indvar.next = add ulong %indvar, 1             ; <ulong> [#uses=1]
        %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
        br bool %tmp.2, label %loopexit.loopexit, label %no_exit
loopexit.loopexit:              ; preds = %no_exit
        %indvar = cast uint %indvar to int              ; <int> [#uses=1]
        %inc.1 = add int %indvar, 1             ; <int> [#uses=1]
        ret int %inc.1
loopexit:               ; preds = %entry
        ret int 0
}
Here's the after code:
int %_strlen(sbyte* %str) {
entry:
        %inc.02 = getelementptr sbyte* %str, uint 1             ; <sbyte*> [#uses=1]
        %tmp.13 = load sbyte* %str              ; <sbyte> [#uses=1]
        %tmp.24 = seteq sbyte %tmp.13, 0                ; <bool> [#uses=1]
        br bool %tmp.24, label %loopexit, label %no_exit
no_exit:                ; preds = %entry, %no_exit
***     %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=3]
        %indvar = cast uint %indvar to int              ; <int> [#uses=1]
        %inc.0.0 = getelementptr sbyte* %inc.02, uint %indvar           ; <sbyte*> [#uses=1]
        %inc.1 = add int %indvar, 1             ; <int> [#uses=1]
        %tmp.1 = load sbyte* %inc.0.0           ; <sbyte> [#uses=1]
        %tmp.2 = seteq sbyte %tmp.1, 0          ; <bool> [#uses=1]
        %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
        br bool %tmp.2, label %loopexit, label %no_exit
loopexit:               ; preds = %entry, %no_exit
        %len.0.1 = phi int [ 0, %entry ], [ %inc.1, %no_exit ]          ; <int> [#uses=1]
        ret int %len.0.1
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13016  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-17 18:16:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						657253119e 
					 
					
						
						
							
							Fix some really nasty dominance bugs that were exposed by my patch to  
						
						... 
						
						
						
						make the verifier more strict.  This fixes building zlib
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13002  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-16 18:08:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d9955aaa61 
					 
					
						
						
							
							ADd a trivial instcombine: load null -> null  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12940  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-14 03:28:36 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fbede52af4 
					 
					
						
						
							
							Fix a bug in my select transformation  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12826  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-11 01:39:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d76956d444 
					 
					
						
						
							
							Implement InstCombine/select.ll:test13*  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12821  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-10 22:21:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						66331a4e33 
					 
					
						
						
							
							Implement InstCombine/add.ll:test20  
						
						... 
						
						
						
						Canonicalize add of sign bit constant into a xor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12819  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-10 22:01:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						326c0f3013 
					 
					
						
						
							
							Fix spurious warning in release mode  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12816  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-10 19:15:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e576b91948 
					 
					
						
						
							
							Implement select.ll:test12*  
						
						... 
						
						
						
						This transforms code like this:
   %C = or %A, %B
   %D = select %cond, %C, %A
into:
   %C = select %cond, %B, 0
   %D = or %A, %C
Since B is often a constant, the select can often be eliminated.  In any case,
this reduces the usage count of A, allowing subsequent optimizations to happen.
This xform applies when the operator is any of:
  add, sub, mul, or, xor, and, shl, shr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12800  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-09 23:46:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2eefe518de 
					 
					
						
						
							
							Fold binary operators with a constant operand into select instructions  
						
						... 
						
						
						
						that have a constant operand.  This implements
add.ll:test19, shift.ll:test15*, and others that are not tested
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12794  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-09 19:05:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						82e14fe168 
					 
					
						
						
							
							Implement select.ll:test11  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12793  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-09 18:19:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f499eaca36 
					 
					
						
						
							
							Implement InstCombine/cast-propagate.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12784  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-08 20:39:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0c199a7628 
					 
					
						
						
							
							Implement InstCombine/select.ll:test[7-10]  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12769  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-08 04:43:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cb69a4ed64 
					 
					
						
						
							
							Implement test/Regression/Transforms/InstCombine/getelementptr_index.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12762  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-07 18:38:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						548f47efb0 
					 
					
						
						
							
							Fix a bug in yesterdays checkins which broke siod.  siod is a great testcase!  :)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-05 16:02:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						15a76c0b35 
					 
					
						
						
							
							Fix InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12658  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-05 02:10:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						28977af72a 
					 
					
						
						
							
							Support getelementptr instructions which use uint's to index into structure  
						
						... 
						
						
						
						types and can have arbitrary 32- and 64-bit integer types indexing into
sequential types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12653  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-05 01:30:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c32b30a429 
					 
					
						
						
							
							Implement select.ll:test[3-6]  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-30 19:37:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4df1b8aa26 
					 
					
						
						
							
							X % -1 == X % 1 == 0  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12520  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-26 16:11:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ebd985cb87 
					 
					
						
						
							
							Two changes:  
						
						... 
						
						
						
						#1  is to unconditionally strip constantpointerrefs out of
instruction operands where they are absolutely pointless and inhibit
optimization.  GRRR!
#2  is to implement InstCombine/getelementptr_const.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12519  91177308-0d34-0410-b5e6-96231b3b80d8 
					
						2004-03-25 22:59:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7c881dffc9 
					 
					
						
						
							
							Teach the optimizer to delete zero sized alloca's (but not mallocs!)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12507  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-19 06:08:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0cea42a560 
					 
					
						
						
							
							Add some debugging output  
						
						... 
						
						
						
						Fix InstCombine/2004-03-13-InstCombineInfLoop.ll which caused an infinite
loop compiling (I think) povray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12365  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-13 23:54:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bfe492b5c2 
					 
					
						
						
							
							Implement sub.ll:test14  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12355  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-13 00:11:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9c2906744a 
					 
					
						
						
							
							Implement InstCombine/sub.ll:test12 & test13  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12353  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-12 23:53:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3d69f46d64 
					 
					
						
						
							
							Add trivial optimizations for select instructions  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12317  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-12 05:52:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7bcc0e7fff 
					 
					
						
						
							
							Rename AddUsesToWorkList -> AddUsersToWorkList, as that is what it does.  
						
						... 
						
						
						
						Create a new AddUsesToWorkList method
optimize memmove/set/cpy of zero bytes to a noop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11941  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-28 05:22:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6160e85201 
					 
					
						
						
							
							Turn 'free null' into nothing  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11940  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-28 04:57:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a0ebcebc06 
					 
					
						
						
							
							Implement test/Regression/Transforms/InstCombine/canonicalize_branch.ll  
						
						... 
						
						
						
						This is a really minor thing, but might help out the 'switch statement induction'
code in simplifycfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11900  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-27 06:27:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d38f208cd9 
					 
					
						
						
							
							Fix a faulty optimization on FP values  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11801  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-24 18:10:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d8864ce766 
					 
					
						
						
							
							Generate much more efficient code in programs like pifft  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11775  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 21:46:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						077a373791 
					 
					
						
						
							
							Fix a small typeo in my checkin last night that broke vortex and other programs :(  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 21:46:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8adac75298 
					 
					
						
						
							
							Fix InstCombine/2004-02-23-ShiftShiftOverflow.ll  
						
						... 
						
						
						
						Also, turn 'shr int %X, 1234' into 'shr int %X, 31'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11768  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 20:30:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c5943fb186 
					 
					
						
						
							
							Implement cast.ll::test14/15  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11742  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 07:16:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4cb170cc6e 
					 
					
						
						
							
							Refactor some code.  In the mul - setcc folding case, we really care about  
						
						... 
						
						
						
						whether this is the sign bit or not, so check unsigned comparisons as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11740  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 06:38:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fed58fd72e 
					 
					
						
						
							
							Implement mul.ll:test11  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11737  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 06:00:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						45aaafef49 
					 
					
						
						
							
							Implement "strength reduction" of   X <= C and X >= C  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11735  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 05:47:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fb54b2b744 
					 
					
						
						
							
							Implement InstCombine/mul.ll:test10, which is a case that occurs when dealing  
						
						... 
						
						
						
						with "predication"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11734  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 05:39:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c6bd195336 
					 
					
						
						
							
							Implement Transforms/InstCombine/cast.ll:test13, a case which occurs in a  
						
						... 
						
						
						
						hot 164.gzip loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-22 05:25:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7059f2e76b 
					 
					
						
						
							
							Fold PHI nodes of constants which are only used by a single cast.  This implements  
						
						... 
						
						
						
						phi.ll:test4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11494  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-16 05:07:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						26ca7e145e 
					 
					
						
						
							
							Teach LLVM to unravel the "swap idiom".  This implements:  
						
						... 
						
						
						
						Regression/Transforms/InstCombine/xor.ll:test20
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11492  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-16 03:54:20 +00:00