Nate Begeman 
							
						 
					 
					
						
						
							
						
						14b0529532 
					 
					
						
						
							
							Add support alignment of allocation instructions.  
						
						... 
						
						
						
						Add support for specifying alignment and size of setjmp jmpbufs.
No targets currently do anything with this information, nor is it presrved
in the bytecode representation.  That's coming up next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-05 09:21:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3b5f45042b 
					 
					
						
						
							
							Implement Transforms/TailCallElim/return-undef.ll, a trivial case  
						
						... 
						
						
						
						that has been sitting in my inbox since May 18. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24194  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-05 08:21:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c812e5d6b8 
					 
					
						
						
							
							Turn sdiv into udiv if both operands have a clear sign bit.  This occurs  
						
						... 
						
						
						
						a few times in crafty:
OLD:    %tmp.36 = div int %tmp.35, 8            ; <int> [#uses=1]
NEW:    %tmp.36 = div uint %tmp.35, 8           ; <uint> [#uses=0]
OLD:    %tmp.19 = div int %tmp.18, 8            ; <int> [#uses=1]
NEW:    %tmp.19 = div uint %tmp.18, 8           ; <uint> [#uses=0]
OLD:    %tmp.117 = div int %tmp.116, 8          ; <int> [#uses=1]
NEW:    %tmp.117 = div uint %tmp.116, 8         ; <uint> [#uses=0]
OLD:    %tmp.92 = div int %tmp.91, 8            ; <int> [#uses=1]
NEW:    %tmp.92 = div uint %tmp.91, 8           ; <uint> [#uses=0]
Which all turn into shrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24190  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-05 07:40:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						11a49f2c0d 
					 
					
						
						
							
							Turn srem -> urem when neither input has their sign bit set.  This triggers  
						
						... 
						
						
						
						8 times in vortex, allowing the srems to be turned into shrs:
OLD:    %tmp.104 = rem int %tmp.5.i37, 16               ; <int> [#uses=1]
NEW:    %tmp.104 = rem uint %tmp.5.i37, 16              ; <uint> [#uses=0]
OLD:    %tmp.98 = rem int %tmp.5.i24, 16                ; <int> [#uses=1]
NEW:    %tmp.98 = rem uint %tmp.5.i24, 16               ; <uint> [#uses=0]
OLD:    %tmp.91 = rem int %tmp.5.i19, 8         ; <int> [#uses=1]
NEW:    %tmp.91 = rem uint %tmp.5.i19, 8                ; <uint> [#uses=0]
OLD:    %tmp.88 = rem int %tmp.5.i14, 8         ; <int> [#uses=1]
NEW:    %tmp.88 = rem uint %tmp.5.i14, 8                ; <uint> [#uses=0]
OLD:    %tmp.85 = rem int %tmp.5.i9, 1024               ; <int> [#uses=2]
NEW:    %tmp.85 = rem uint %tmp.5.i9, 1024              ; <uint> [#uses=0]
OLD:    %tmp.82 = rem int %tmp.5.i, 512         ; <int> [#uses=2]
NEW:    %tmp.82 = rem uint %tmp.5.i1, 512               ; <uint> [#uses=0]
OLD:    %tmp.48.i = rem int %tmp.5.i.i161, 4            ; <int> [#uses=1]
NEW:    %tmp.48.i = rem uint %tmp.5.i.i161, 4           ; <uint> [#uses=0]
OLD:    %tmp.20.i2 = rem int %tmp.5.i.i, 4              ; <int> [#uses=1]
NEW:    %tmp.20.i2 = rem uint %tmp.5.i.i, 4             ; <uint> [#uses=0]
it also occurs 9 times in gcc, but with odd constant divisors (1009 and 61)
so the payoff isn't as great.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24189  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-05 07:28:37 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						7bbff04f7f 
					 
					
						
						
							
							make this 64 bit clean, fixed test30 of /Regression/Transforms/InstCombine/add.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24158  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-02 18:35:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						76ff2c7504 
					 
					
						
						
							
							Limit the search depth of MaskedValueIsZero to 6 instructions, to avoid  
						
						... 
						
						
						
						bad cases.  This fixes Markus's second testcase in PR639, and should
seal it for good.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24123  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-31 18:35:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9fefdb5d66 
					 
					
						
						
							
							This pass is now obsolete since all targets have moved to the SelectionDAG  
						
						... 
						
						
						
						infrastructure and the simple isels have been removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24090  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 05:33:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5af401d5f1 
					 
					
						
						
							
							Remove dead #include  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24083  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 04:41:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1462aa78c7 
					 
					
						
						
							
							Now that instcombine does this xform, remove it from the -raise pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24082  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 04:40:23 +00:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
							
						
						cbbc6b74e3 
					 
					
						
						
							
							Fix #include order  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24044  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 16:34:00 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						a115643357 
					 
					
						
						
							
							Move some constant folding code shared by Analysis and Transform passes  
						
						... 
						
						
						
						into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24036  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-27 15:54:34 +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 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						e96a1a576b 
					 
					
						
						
							
							1. Remove libraries no longer created from the list of libraries linked into the  
						
						... 
						
						
						
						SparcV9 JIT.
2. Make LLVMTransformUtils a relinked object file and always link it before
   LLVMAnalysis.a.  These two libraries have circular dependencies on each
   other which creates problem when building the SparcV9 JIT.  This change
   fixes the dependency on all platforms problems with a minimum of fuss.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24023  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-26 20:35:13 +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 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						e9c6d36377 
					 
					
						
						
							
							Stop using deprecated types  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23973  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-25 11:18:06 +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 
							
						 
					 
					
						
						
							
						
						d00a3cee80 
					 
					
						
						
							
							Remove some beta code that no longer has an owner.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23944  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 02:32:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a66459095c 
					 
					
						
						
							
							Do not build the ProfilePaths directory anymore  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23943  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 02:31:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f36aeedaa3 
					 
					
						
						
							
							DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23940  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 02:26:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ab0ed3592b 
					 
					
						
						
							
							Only build .a file versions of these libraries, instead of .a and .o versions.  
						
						... 
						
						
						
						This should speed up build times.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23933  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 01:59:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						492d4a9d84 
					 
					
						
						
							
							Make sure that anything using the ADCE pass pulls in the UnifyFunctionExitNodes  
						
						... 
						
						
						
						code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23931  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-24 01:40:23 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						66c5fd6c53 
					 
					
						
						
							
							When a function takes a variable number of pointer arguments, with a zero  
						
						... 
						
						
						
						pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.
The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23888  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-23 04:37:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						63ad7963e4 
					 
					
						
						
							
							My previous patch was too conservative.  Reject FP and void types, but do  
						
						... 
						
						
						
						allow pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23859  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-21 05:45:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1e9f3af561 
					 
					
						
						
							
							Do NOT touch FP ops with LSR.  This fixes a testcase Nate sent me from an  
						
						... 
						
						
						
						inner loop like this:
LBB_RateConvertMono8AltiVec_2:  ; no_exit
        lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
        lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
        fmr f3, f3
        fadd f0, f2, f0
        fadd f3, f0, f3
        fcmpu cr0, f3, f1
        bge cr0, LBB_RateConvertMono8AltiVec_2  ; no_exit
to an inner loop like this:
LBB_RateConvertMono8AltiVec_1:  ; no_exit
        fsub f2, f2, f1
        fcmpu cr0, f2, f1
        fmr f0, f2
        bge cr0, LBB_RateConvertMono8AltiVec_1  ; no_exit
Doh! good catch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23838  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-20 04:47:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a27ea769eb 
					 
					
						
						
							
							Add an option to this pass.  If it is set, we are allowed to internalize  
						
						... 
						
						
						
						all but main.  If it's not set, we can still internalize, but only if an
explicit symbol list is provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23783  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-18 06:29:22 +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 
							
						 
					 
					
						
						
							
						
						d6155e96f7 
					 
					
						
						
							
							Fix (hopefully the last) issue where LSR is nondeterminstic.  When pulling  
						
						... 
						
						
						
						out CSE's of base expressions it could build a result whose order was
nondet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-11 18:41:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7b445c521b 
					 
					
						
						
							
							Fix another problem where LSR was being nondeterminstic.  Also remove elements  
						
						... 
						
						
						
						from the end of a vector instead of the beginning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23697  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-11 18:30:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b4dd1b86fa 
					 
					
						
						
							
							Fix another lsr-is-nondeterministic case  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23695  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-11 18:17:57 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a18af06360 
					 
					
						
						
							
							Hrm, you didn't see this.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-09 06:24:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7305ae28df 
					 
					
						
						
							
							Fix a source of non-determinism in the backend: the order of processing  
						
						... 
						
						
						
						IV strides dependend on the pointer order of the strides in memory.
Non-determinism is bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23672  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-09 06:20:55 +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 
							
						 
					 
					
						
						
							
						
						ab55698349 
					 
					
						
						
							
							Fix DemoteRegToStack on an invoke.  This fixes PR634.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23618  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-04 00:44:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7a66e686fe 
					 
					
						
						
							
							Clean up the code a bit.  Use isInstructionTriviallyDead to be more aggressive  
						
						... 
						
						
						
						and more correct than use_empty().  This fixes PR635 and
SimplifyCFG/2005-10-02-InvokeSimplify.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23616  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-03 23:43:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e8ca66914 
					 
					
						
						
							
							Make IVUseShouldUsePostIncValue more aggressive when the use is a PHI.  In  
						
						... 
						
						
						
						particular, it should realize that phi's use their values in the pred block
not the phi block itself.  This change turns our em3d loop from this:
_test:
        cmpwi cr0, r4, 0
        bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
LBB_test_1:     ; entry.loopexit_crit_edge
        li r2, 0
        b LBB_test_6    ; loopexit
LBB_test_2:     ; entry.no_exit_crit_edge
        li r6, 0
LBB_test_3:     ; no_exit
        or r2, r6, r6
        lwz r6, 0(r3)
        cmpw cr0, r6, r5
        beq cr0, LBB_test_6     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r2, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit
LBB_test_5:     ; endif.loopexit.loopexit_crit_edge
        addi r3, r2, 1
        blr
LBB_test_6:     ; loopexit
        or r3, r2, r2
        blr
into:
_test:
        cmpwi cr0, r4, 0
        bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
LBB_test_1:     ; entry.loopexit_crit_edge
        li r2, 0
        b LBB_test_5    ; loopexit
LBB_test_2:     ; entry.no_exit_crit_edge
        li r6, 0
LBB_test_3:     ; no_exit
        lwz r2, 0(r3)
        cmpw cr0, r2, r5
        or r2, r6, r6
        beq cr0, LBB_test_5     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r6, 1
        cmpw cr0, r6, r4
        or r2, r6, r6
        blt cr0, LBB_test_3     ; no_exit
LBB_test_5:     ; loopexit
        or r3, r2, r2
        blr
Unfortunately, this is actually worse code, because the register coallescer
is getting confused somehow.  If it were doing its job right, it could turn the
code into this:
_test:
        cmpwi cr0, r4, 0
        bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
LBB_test_1:     ; entry.loopexit_crit_edge
        li r6, 0
        b LBB_test_5    ; loopexit
LBB_test_2:     ; entry.no_exit_crit_edge
        li r6, 0
LBB_test_3:     ; no_exit
        lwz r2, 0(r3)
        cmpw cr0, r2, r5
        beq cr0, LBB_test_5     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r6, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit
LBB_test_5:     ; loopexit
        or r3, r6, r6
        blr
... which I'll work on next. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23604  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-03 02:50:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0ae33eb243 
					 
					
						
						
							
							Refactor some code into a function  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23603  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-03 01:04:44 +00:00