Chris Lattner 
							
						 
					 
					
						
						
							
						
						cfd65100c4 
					 
					
						
						
							
							Pull some code out into a function, give it the ability to see through +.  
						
						... 
						
						
						
						This allows us to turn code like malloc(4*x+4) -> malloc int, (x+1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24081  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 04:36:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						455fcc8d35 
					 
					
						
						
							
							Remove a special case, allowing the general case to handle it.  No functionality  
						
						... 
						
						
						
						change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24076  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 03:19:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						325231c925 
					 
					
						
						
							
							Fix a bit of backwards logic that broke exptree and smg2000  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24056  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-28 16:27:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						108e902aeb 
					 
					
						
						
							
							Do not sink any instruction with side effects, including vaarg.  This fixes  
						
						... 
						
						
						
						PR640
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24046  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 17:13:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0e026de6ac 
					 
					
						
						
							
							Fix typo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24033  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 06:26:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e679288a30 
					 
					
						
						
							
							Teach instcombine to promote stuff like (cast (malloc sbyte, 8*X) to int*)  
						
						... 
						
						
						
						into: malloc int, (2*X)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24032  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 06:24:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8142b0a54b 
					 
					
						
						
							
							Promote cases like cast (malloc sbyte, 100) to int* into  
						
						... 
						
						
						
						(malloc [25 x int]) directly without having to convert to
(malloc [100 x sbyte]) first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24031  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 06:12:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0ddac2a1c3 
					 
					
						
						
							
							Minor change to this file to support obscure cases with constant array amounts  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 05:53:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e9f15e538a 
					 
					
						
						
							
							fold nested and's early to avoid inefficiencies in MaskedValueIsZero.  This  
						
						... 
						
						
						
						fixes a very slow compile in PR639.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24011  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-26 17:18:16 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						39387a5c93 
					 
					
						
						
							
							Handle allocations that, even after removing dead uses, still have more than  
						
						... 
						
						
						
						one use (but one is a cast).  This handles the very common case of:
 X = alloc [n x byte]
 Y = cast X to somethingbetter
 seteq X, null
In order to avoid infinite looping when there are multiple casts, we only
allow this if the xform is strictly increasing the alignment of the
allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23961  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 06:35:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						18e78bb09e 
					 
					
						
						
							
							Fix a bug where we would 'promote' an allocation from one type to another  
						
						... 
						
						
						
						where the second has less alignment required.  If we had explicit alignment
support in the IR, we could handle this case, but we can't until we do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23960  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 06:26:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b53c2382a9 
					 
					
						
						
							
							Before promoting a malloc type, remove dead uses.  This makes instcombine  
						
						... 
						
						
						
						more effective at promoting these allocations, catching them earlier in the
compile process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 06:22:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b3f8397a3d 
					 
					
						
						
							
							Pull some code out into a function, no functionality change  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23958  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 06:03:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8532cf6258 
					 
					
						
						
							
							Make this work for FP constantexprs  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23773  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-17 20:18:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e678e03b7 
					 
					
						
						
							
							Oops, X+0.0 isn't foldable, but X+-0.0 is.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23772  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-17 17:56:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						560a17d3bc 
					 
					
						
						
							
							relax this a bit, as we only support the default rounding mode  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23771  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-17 17:49:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5fb0deb43a 
					 
					
						
						
							
							Make MaskedValueIsZero a bit more aggressive  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23677  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-09 22:08:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						60de63d0b6 
					 
					
						
						
							
							Fix funky xcode indentation  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-09 06:36:35 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						68d98e0bdc 
					 
					
						
						
							
							Remove useless variable.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23656  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-07 05:28:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						363f2a26d5 
					 
					
						
						
							
							Factor the GetGEPGlobalInitializer out of this pass and into Transforms/Utils  
						
						... 
						
						
						
						as ConstantFoldLoadThroughGEPConstantExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23445  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-26 05:28:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5931c54e85 
					 
					
						
						
							
							Move MaskedValueIsZero up.  
						
						... 
						
						
						
						Match a bunch of idioms for sign extensions, implementing InstCombine/signext.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23428  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-24 23:43:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7203e158da 
					 
					
						
						
							
							Refactor this code a bit and make it more general.  This now compiles:  
						
						... 
						
						
						
						struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus2 (unsigned int x) { b.j += x; }
To:
_plus2:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        slwi r3, r3, 6
        add r3, r4, r3
        rlwimi r3, r4, 0, 26, 14
        stw r3, 0(r2)
        blr
instead of:
_plus2:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        rlwinm r5, r4, 26, 21, 31
        add r3, r5, r3
        rlwimi r4, r3, 6, 15, 25
        stw r4, 0(r2)
        blr
by eliminating an 'and'.
I'm pretty sure this is as small as we can go :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23386  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 07:22:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						150f12af7f 
					 
					
						
						
							
							Compile  
						
						... 
						
						
						
						struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus2 (unsigned int x) {
  b.j += x;
}
to:
plus2:
        mov %EAX, DWORD PTR [b]
        mov %ECX, %EAX
        and %ECX, 131008
        mov %EDX, DWORD PTR [%ESP + 4]
        shl %EDX, 6
        add %EDX, %ECX
        and %EDX, 131008
        and %EAX, -131009
        or %EDX, %EAX
        mov DWORD PTR [b], %EDX
        ret
instead of:
plus2:
        mov %EAX, DWORD PTR [b]
        mov %ECX, %EAX
        shr %ECX, 6
        and %ECX, 2047
        add %ECX, DWORD PTR [%ESP + 4]
        shl %ECX, 6
        and %ECX, 131008
        and %EAX, -131009
        or %ECX, %EAX
        mov DWORD PTR [b], %ECX
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23385  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 06:30:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0b7c0bf249 
					 
					
						
						
							
							Generalize this transform, using MaskedValueIsZero, allowing us to compile:  
						
						... 
						
						
						
						struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus3 (unsigned int x) { b.k += x; }
To:
plus3:
        mov %EAX, DWORD PTR [%ESP + 4]
        shl %EAX, 17
        add DWORD PTR [b], %EAX
        ret
instead of:
plus3:
        mov %EAX, DWORD PTR [%ESP + 4]
        shl %EAX, 17
        mov %ECX, DWORD PTR [b]
        add %EAX, %ECX
        and %EAX, -131072
        and %ECX, 131071
        or %ECX, %EAX
        mov DWORD PTR [b], %ECX
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23384  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 06:02:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5aa7666ebe 
					 
					
						
						
							
							fix typeo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23383  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 05:25:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0d947ea943 
					 
					
						
						
							
							Remove unintentionally committed code  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23382  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 05:12:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						11021cb988 
					 
					
						
						
							
							implement shift.ll:test25.  This compiles:  
						
						... 
						
						
						
						struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus3 (unsigned int x) {
  b.k += x;
}
to:
_plus3:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r3, 0(r2)
        rlwinm r4, r3, 0, 0, 14
        add r4, r4, r3
        rlwimi r4, r3, 0, 15, 31
        stw r4, 0(r2)
        blr
instead of:
_plus3:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        srwi r5, r4, 17
        add r3, r5, r3
        slwi r3, r3, 17
        rlwimi r3, r4, 0, 15, 31
        stw r3, 0(r2)
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23381  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 05:12:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c8e7756791 
					 
					
						
						
							
							Implement add.ll:test29.  Codegening:  
						
						... 
						
						
						
						struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus1 (unsigned int x) {
  b.i += x;
}
as:
_plus1:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        add r3, r4, r3
        rlwimi r3, r4, 0, 0, 25
        stw r3, 0(r2)
        blr
instead of:
_plus1:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        rlwinm r5, r4, 0, 26, 31
        add r3, r5, r3
        rlwimi r3, r4, 0, 0, 25
        stw r3, 0(r2)
        blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23379  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 04:24:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3255bd101d 
					 
					
						
						
							
							remove debug output  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23377  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 03:50:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e9bed7d107 
					 
					
						
						
							
							Implement or.ll:test21.  This teaches instcombine to be able to turn this:  
						
						... 
						
						
						
						struct {
   unsigned int bit0:1;
   unsigned int ubyte:31;
} sdata;
void foo() {
  sdata.ubyte++;
}
into this:
foo:
        add DWORD PTR [sdata], 2
        ret
instead of this:
foo:
        mov %EAX, DWORD PTR [sdata]
        mov %ECX, %EAX
        add %ECX, 2
        and %ECX, -2
        and %EAX, 1
        or %EAX, %ECX
        mov DWORD PTR [sdata], %EAX
        ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23376  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-18 03:42:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6e2f843114 
					 
					
						
						
							
							Fix the regression last night compiling povray  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23348  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-14 17:32:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7835cdde40 
					 
					
						
						
							
							Add a simple xform to simplify array accesses with casts in the way.  
						
						... 
						
						
						
						This is useful for 178.galgel where resolution of dope vectors (by the
optimizer) causes the scales to become apparent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23328  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-13 18:36:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eed48275a1 
					 
					
						
						
							
							Add a helper function, allowing us to simplify some code a bit, changing  
						
						... 
						
						
						
						indentation, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23325  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-13 00:40:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						408902b3c4 
					 
					
						
						
							
							Implement a simple xform to turn code like this:  
						
						... 
						
						
						
						if () { store A -> P; } else { store B -> P; }
into a PHI node with one store, in the most trival case.  This implements
load.ll:test10.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23324  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-12 23:23:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9c1f0fd8de 
					 
					
						
						
							
							Another load-peephole optimization: do gcse when two loads are next to  
						
						... 
						
						
						
						each other.  This implements InstCombine/load.ll:test9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23322  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-12 22:21:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						62f254df04 
					 
					
						
						
							
							Implement a trivial form of store->load forwarding where the store and the  
						
						... 
						
						
						
						load are exactly consequtive.  This is picked up by other passes, but this
triggers thousands of times in fortran programs that use static locals
(and is thus a compile-time speedup).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23320  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-12 22:00:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4bc5f8071a 
					 
					
						
						
							
							Use the new 'moveBefore' method to simplify some code.  Really, which is  
						
						... 
						
						
						
						easier to understand?  :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22706  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-08 19:11:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2b83af2d0f 
					 
					
						
						
							
							Add some simple folds that occur in bitfield cases.  Fix a minor bug in  
						
						... 
						
						
						
						isHighOnes, where it would consider 0 to have high ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22693  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-07 07:03:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						68ee736694 
					 
					
						
						
							
							now that hasConstantValue defaults to only returning values that dominate  
						
						... 
						
						
						
						the PHI node, this ugly code can vanish.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22672  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-05 01:04:30 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						a83ba0f5c9 
					 
					
						
						
							
							Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into  
						
						... 
						
						
						
						BasicBlock's removePredecessor routine.  This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22664  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-04 23:24:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bcd7db59d0 
					 
					
						
						
							
							Update to use the new MathExtras.h support for log2 computation.  
						
						... 
						
						
						
						Patch contributed by Jim Laskey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22592  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-02 19:16:58 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						00b16889ab 
					 
					
						
						
							
							Eliminate all remaining tabs and trailing spaces.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-27 06:12:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f9944f109c 
					 
					
						
						
							
							Do not let MaskedValueIsZero consider undef to be zero, for reasons  
						
						... 
						
						
						
						explained in the comment.
This fixes UnitTests/2003-09-18-BitFieldTest on darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22483  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-20 18:49:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7911f03626 
					 
					
						
						
							
							When transforming &A[i] < &A[j]  ->  i < j, make sure to perform the comparison  
						
						... 
						
						
						
						as a signed compare.  This patch may fix PR597, but is correct in any case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22465  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-18 23:07:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b3d59701c8 
					 
					
						
						
							
							Fix a problem that instcombine would hit when dealing with unreachable code.  
						
						... 
						
						
						
						Because the instcombine has to scan the entire function when it starts up
to begin with, we might as well do it in DFO so we can nuke unreachable code.
This fixes: Transforms/InstCombine/2005-07-07-DeadPHILoop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22348  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-07 20:40:38 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						4b828e6384 
					 
					
						
						
							
							Clean up some uninitialized variables and missing return statements that  
						
						... 
						
						
						
						GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22249  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-18 17:37:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e88b7533be 
					 
					
						
						
							
							This is not true: (X != 13 | X < 15) -> X < 15  
						
						... 
						
						
						
						It is actually always true.  This fixes PR586 and
Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22236  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-17 03:59:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5662503afd 
					 
					
						
						
							
							Don't crash when dealing with INTMIN.  This fixes PR585 and  
						
						... 
						
						
						
						Transforms/InstCombine/2005-06-16-RangeCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22234  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-17 02:05:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d7e31cfaae 
					 
					
						
						
							
							avoid constructing out of range shift amounts.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-17 01:29:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f9c775c22e 
					 
					
						
						
							
							Fix PR583 and testcase Transforms/InstCombine/2005-06-15-DivSelectCrash.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22227  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-16 04:55:52 +00:00