Chris Lattner 
							
						 
					 
					
						
						
							
						
						9ba46c13bf 
					 
					
						
						
							
							Fix Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30555  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-21 05:12:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7f8897f22e 
					 
					
						
						
							
							eliminate RegisterOpt.  It does the same thing as RegisterPass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-27 22:42:52 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						eb70591492 
					 
					
						
						
							
							Add an assertion to check that we're really preserving LCSSA.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29886  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-25 22:12:36 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ac12322710 
					 
					
						
						
							
							Reapply the indvars patch, since nothing blew up last night.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29874  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-25 17:41:25 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b397d81f03 
					 
					
						
						
							
							Revert my previous patch.  Since there are some major changes that went in today,  
						
						... 
						
						
						
						I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly
tester.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29868  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-25 03:45:57 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						8a24749cb8 
					 
					
						
						
							
							Specify that  indvars actually preserve LCSSA.  This has been done for a while, but I  
						
						... 
						
						
						
						forgot to put in the analysis usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29867  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-25 03:32:13 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						47a53ac726 
					 
					
						
						
							
							Fix a grammaro in a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29765  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-08-18 09:01:07 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						c1be492f94 
					 
					
						
						
							
							Hopefully the final attempt at making IndVars preserve LCSSA.  
						
						... 
						
						
						
						This should fix PR 831.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29141  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-14 18:49:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						262041892d 
					 
					
						
						
							
							Revert this patch temporarily until PR831 is fixed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29134  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-13 19:05:20 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						bcfb913df0 
					 
					
						
						
							
							IndVars now (correctly) preserves LCSSA form.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29126  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-12 21:29:14 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						4a8aadd1f5 
					 
					
						
						
							
							Revert my indvars changes because they were breaking things.  Unfortunately this  
						
						... 
						
						
						
						didn't start showing up until after the recent instcombine fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-07-11 07:25:33 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f9b238e93d 
					 
					
						
						
							
							De-pessimize the handling of LCSSA Phi nodes in IndVarSimplify.  Hopefully this  
						
						... 
						
						
						
						will make Shootout-C/nestedloop faster.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28924  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-06-27 02:17:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb83f4e6cd 
					 
					
						
						
							
							Fix IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll, a case where a  
						
						... 
						
						
						
						"LCSSA" phi node causes indvars to break dominance properties.  This fixes
causes indvars to avoid inserting aggressive code in this case, instead
indvars should be fixed to be more aggressive in the face of lcssa phi's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28850  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-06-17 01:02:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1730078d5f 
					 
					
						
						
							
							Fix a crash building 176.gcc due to my recent patch, which only fixed  
						
						... 
						
						
						
						half the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24414  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-18 18:30:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ceda605fd7 
					 
					
						
						
							
							This was checking the wrong GEP expression.  Fixing this fixes a gccas crash  
						
						... 
						
						
						
						compiling mysql reported by Ted Kremenek.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24402  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-17 19:35:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cda9ca5a4f 
					 
					
						
						
							
							Allow indvar simplify to canonicalize ANY affine IV, not just affine IVs with  
						
						... 
						
						
						
						constant stride.  This implements Transforms/IndVarsSimplify/variable-stride-ivs.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22744  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-10 01:12:06 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						36f891bdf6 
					 
					
						
						
							
							Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that  
						
						... 
						
						
						
						other passes may use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22557  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-07-30 00:12:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4bd09d70cc 
					 
					
						
						
							
							Fix PR582.  The rewriter can move casts around, which invalidated the  
						
						... 
						
						
						
						BB iterator.  This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22221  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-06-15 21:29:31 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						fd93908ae8 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 23:48:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a7980b5ea 
					 
					
						
						
							
							Fix the second bug attached to PR504.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-02-14 20:11:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f6249261a9 
					 
					
						
						
							
							Fix for testcase Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll  
						
						... 
						
						
						
						and PR504.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20129  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-02-12 03:26:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1fca5ff62b 
					 
					
						
						
							
							Convert 'struct' to 'class' in various places to adhere to the coding standards  
						
						... 
						
						
						
						and work better with VC++.  Patch contributed by Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-27 16:14:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						989cbd58fb 
					 
					
						
						
							
							Fix a REALLY obscure bug in my previous checkin, which was splicing the END  
						
						... 
						
						
						
						marker from one ilist into the middle of another basic block!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16925  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-12 01:02:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4b9c7841f 
					 
					
						
						
							
							Handle a common case more carefully.  In particular, instead of transforming  
						
						... 
						
						
						
						pointer recurrences into expressions from this:
  %P_addr.0.i.0 = phi sbyte* [ getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), %entry ], [ %inc.0.i, %no_exit.i ]
  %inc.0.i = getelementptr sbyte* %P_addr.0.i.0, int 1            ; <sbyte*> [#uses=2]
into this:
  %inc.0.i = getelementptr sbyte* getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), int %inc.0.i.rec
Actually create something nice, like this:
  %inc.0.i = getelementptr [8 x sbyte]* %.str_1, int 0, int %inc.0.i.rec
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16924  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-11 23:06:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4b50156049 
					 
					
						
						
							
							Prototype these functions more accurately  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16432  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-20 04:43:15 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						2da5c3dda6 
					 
					
						
						
							
							Convert code to compile with vc7.1.  
						
						... 
						
						
						
						Patch contributed by Paolo Invernizzi. Thanks Paolo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16368  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-15 17:06:42 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						551ccae044 
					 
					
						
						
							
							Changes For Bug 352  
						
						... 
						
						
						
						Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-01 22:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						595ee7ec26 
					 
					
						
						
							
							Throttle back indvar substitution from creating multiplies in loops.  This is bad bad bad.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15227  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-26 02:47:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a25502acd7 
					 
					
						
						
							
							Two fixes.  First, stop using the ugly shouldSubstituteIndVar method.  
						
						... 
						
						
						
						Second, disable substitution of quadratic addrec expressions to avoid putting
multiplies in loops!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14358  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-24 06:49:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c5c5e6afe5 
					 
					
						
						
							
							Make use of BinaryOperator::create* methods to shrinkify code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14262  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-20 05:04:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2b994c7206 
					 
					
						
						
							
							Fix a nasty bug, noticed by Reid  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14249  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-19 18:15:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4a7553e2da 
					 
					
						
						
							
							Move the scev expansion code into this pass, where it belongs.  There is  
						
						... 
						
						
						
						still room for cleanup, but at least the code modification is out of the
analysis now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-23 21:29:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b4782d13d1 
					 
					
						
						
							
							Disable a previous patch that was causing indvars to loop infinitely :(  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13108  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-22 15:12:36 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fcb81f5f4c 
					 
					
						
						
							
							Fix an extremely serious thinko I made in revision 1.60 of this file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13106  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-22 14:59:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1363e85df7 
					 
					
						
						
							
							Implement a todo, rewriting all possible scev expressions inside of the  
						
						... 
						
						
						
						loop.  This eliminates the extra add from the previous case, but it's
not clear that this will be a performance win overall.  Tommorows test
results will tell. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13103  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-21 23:36:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5d461d20ae 
					 
					
						
						
							
							Implement a fixme.  The helps loops that have induction variables of different  
						
						... 
						
						
						
						types in them.  Instead of creating an induction variable for all types, it
creates a single induction variable and casts to the other sizes.  This generates
this code:
no_exit:                ; preds = %entry, %no_exit
        %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=4]
***     %j.0.0 = cast uint %indvar to short             ; <short> [#uses=1]
        %indvar = cast uint %indvar to int              ; <int> [#uses=1]
        %tmp.7 = getelementptr short* %P, uint %indvar          ; <short*> [#uses=1]
        store short %j.0.0, short* %tmp.7
        %inc.0 = add int %indvar, 1             ; <int> [#uses=2]
        %tmp.2 = setlt int %inc.0, %N           ; <bool> [#uses=1]
        %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
        br bool %tmp.2, label %no_exit, label %loopexit
instead of:
no_exit:                ; preds = %entry, %no_exit
        %indvar = phi ushort [ %indvar.next, %no_exit ], [ 0, %entry ]          ; <ushort> [#uses=2]
***     %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=3]
        %indvar = cast uint %indvar to int              ; <int> [#uses=1]
        %indvar = cast ushort %indvar to short          ; <short> [#uses=1]
        %tmp.7 = getelementptr short* %P, uint %indvar          ; <short*> [#uses=1]
        store short %indvar, short* %tmp.7
        %inc.0 = add int %indvar, 1             ; <int> [#uses=2]
        %tmp.2 = setlt int %inc.0, %N           ; <bool> [#uses=1]
        %indvar.next = add uint %indvar, 1
***     %indvar.next = add ushort %indvar, 1
        br bool %tmp.2, label %no_exit, label %loopexit
This is an improvement in register pressure, but probably doesn't happen that
often.
The more important fix will be to get rid of the redundant add.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13101  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-21 22:22:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f1ab4b4eac 
					 
					
						
						
							
							Change the ExitBlocks list from being explicitly contained in the Loop  
						
						... 
						
						
						
						structure to being dynamically computed on demand.  This makes updating
loop information MUCH easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13045  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-18 22:14:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						20aa098ba6 
					 
					
						
						
							
							If the loop executes a constant number of times, try a bit harder to replace  
						
						... 
						
						
						
						exit values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13018  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-17 18:44:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f50af088f1 
					 
					
						
						
							
							Even if there are not any induction variables in the loop, if we can compute  
						
						... 
						
						
						
						the trip count for the loop, insert one so that we can canonicalize the exit
condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13015  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-17 18:08:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						006118fe8c 
					 
					
						
						
							
							Fix some of the strange CBE-only failures that happened last night.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12980  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-16 06:03:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d244057a48 
					 
					
						
						
							
							Fix a bug in the previous checkin: if the exit block is not the same as  
						
						... 
						
						
						
						the back-edge block, we must check the preincremented value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12968  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-15 20:26:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						59fdaeeae8 
					 
					
						
						
							
							Change the canonical induction variable that we insert.  
						
						... 
						
						
						
						Instead of producing code like this:
Loop:
  X = phi 0, X2
  ...
  X2 = X + 1
  if (X != N-1) goto Loop
We now generate code that looks like this:
Loop:
  X = phi 0, X2
  ...
  X2 = X + 1
  if (X2 != N) goto Loop
This has two big advantages:
  1. The trip count of the loop is now explicit in the code, allowing
     the direct implementation of Loop::getTripCount()
  2. This reduces register pressure in the loop, and allows X and X2 to be
     put into the same register.
As a consequence of the second point, the code we generate for loops went
from:
.LBB2:  # no_exit.1
	...
        mov %EDI, %ESI
        inc %EDI
        cmp %ESI, 2
        mov %ESI, %EDI
        jne .LBB2 # PC rel: no_exit.1
To:
.LBB2:  # no_exit.1
	...
        inc %ESI
        cmp %ESI, 3
        jne .LBB2 # PC rel: no_exit.1
... which has two fewer moves, and uses one less register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12961  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-15 15:21:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						40bf8b48cd 
					 
					
						
						
							
							Rewrite the indvars pass to use the ScalarEvolution analysis.  
						
						... 
						
						
						
						This also implements some new features for the indvars pass, including
linear function test replacement, exit value substitution, and it works with
a much more general class of induction variables and loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12620  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-02 20:24:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						329c1c6c94 
					 
					
						
						
							
							Improve encapsulation in the Loop and LoopInfo classes by eliminating the  
						
						... 
						
						
						
						getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-08 00:09:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						15cad759fe 
					 
					
						
						
							
							More minor non-functional changes.  This now computes the exit condition, though  
						
						... 
						
						
						
						it doesn't do anything with it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10590  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-23 07:47:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						500597a1c3 
					 
					
						
						
							
							Don't mind me, I'm just refactoring away.  This patch makes room for LFTR, but  
						
						... 
						
						
						
						contains no functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10583  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-22 09:53:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						18b3c97bc7 
					 
					
						
						
							
							Implement IndVarsSimplify/pointer-indvars.ll, transforming pointer  
						
						... 
						
						
						
						arithmetic into "array subscripts"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10580  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-22 05:02:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3324e718bc 
					 
					
						
						
							
							Fix PR194  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10573  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-22 03:58:44 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						47df12d80d 
					 
					
						
						
							
							Reverted back to previous revision - this was previously merged  
						
						... 
						
						
						
						according to the CVS log messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10517  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 17:19:19 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						d000e1dc2f 
					 
					
						
						
							
							Merged in RELEASE_11.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10516  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 16:43:17 +00:00