Evan Cheng 
							
						 
					 
					
						
						
							
						
						d1d6b5cce2 
					 
					
						
						
							
							For each loop, keep track of all the IV expressions inserted indexed by  
						
						... 
						
						
						
						stride. For a set of uses of the IV of a stride which is a multiple
of another stride, do not insert a new IV expression. Rather, reuse the
previous IV and rewrite the uses as uses of IV expression multiplied by
the factor.
e.g.
x = 0 ...; x ++
y = 0 ...; y += 4
then use of y can be rewritten as use of 4*x for x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26803  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-16 21:53:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d277f2c669 
					 
					
						
						
							
							Added target lowering hooks which LSR consults to make more intelligent  
						
						... 
						
						
						
						transformation decisions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26738  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-03-13 23:14:23 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						7c0c567058 
					 
					
						
						
							
							Reg2Mem is something a pass may depend on, so allow that  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24488  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-22 22:14:23 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Lenharth 
							
						 
					 
					
						
						
							
						
						183119cdf6 
					 
					
						
						
							
							The pass everyone has been waiting for!  
						
						... 
						
						
						
						Reg2Mem
for fun you can opt -reg2mem -mem2reg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-11-10 01:58:38 +00:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
							
						
						3aa4e15331 
					 
					
						
						
							
							Remove the LowerConstantExpressionsPass pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-29 05:32:20 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						34695381d6 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21412  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:59:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						73459d097b 
					 
					
						
						
							
							add a new prototype  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21305  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-15 19:24:49 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						ab7ada3ed6 
					 
					
						
						
							
							Rename createPromoteMemoryToRegister() to  
						
						... 
						
						
						
						createPromoteMemoryToRegisterPass() to be consistent with other pass
creation functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20885  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-28 02:01:12 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						2f3c9b7562 
					 
					
						
						
							
							Add support for not strength reducing GEPs where the element size is a small  
						
						... 
						
						
						
						power of two.  This emphatically includes the zeroeth power of two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20429  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-04 04:04:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7dd732bf80 
					 
					
						
						
							
							Add an argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20413  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-03-03 01:03:10 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						bf65268def 
					 
					
						
						
							
							Add more missing createXxxPass functions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-08 17:21:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						92f6c15d8f 
					 
					
						
						
							
							Move the strip pass from Scalar to IPO lib  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18438  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-12-02 21:24:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4c4c415fca 
					 
					
						
						
							
							New prototype for lowerpacked pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17915  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-17 18:01:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8226db66a2 
					 
					
						
						
							
							This is V9 specific stuff  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17546  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-07 00:42:29 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						eaa13851a7 
					 
					
						
						
							
							Initial implementation of the strength reduction for GEP instructions in  
						
						... 
						
						
						
						loops.  This optimization is not turned on by default yet, but may be run
with the opt tool's -loop-reduce flag.  There are many FIXMEs listed in the
code that will make it far more applicable to a wide range of code, but you
have to start somewhere :)
This limited version currently triggers on the following tests in the
MultiSource directory:
pcompress2: 7 times
cfrac: 5 times
anagram: 2 times
ks: 6 times
yacr2: 2 times
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17134  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-18 21:08:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8e47e7292c 
					 
					
						
						
							
							Do not prototype any of these passes as returning Pass*.  Instead, be specific  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16431  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-20 04:41:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						264532cd31 
					 
					
						
						
							
							Remove unused pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16338  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-14 16:34:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f1fccfd6a8 
					 
					
						
						
							
							Expose breakcriticaledges as a functionpass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15370  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-31 10:02:24 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						96d4bf7aee 
					 
					
						
						
							
							Make the create...() functions for some of these passes return a FunctionPass *.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15276  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-27 17:43:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3ede6adf18 
					 
					
						
						
							
							New prototype  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-22 08:07:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						288c92c16b 
					 
					
						
						
							
							Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14397  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-25 07:41:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bab838e76d 
					 
					
						
						
							
							Add a new prototype  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-23 21:16:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8277567dc6 
					 
					
						
						
							
							Add accessor for a Loop Unswitching pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13066  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-19 06:28:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4c174a7bba 
					 
					
						
						
							
							Add prototype  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13029  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-18 05:20:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0c58897d1c 
					 
					
						
						
							
							Improve description, add warning  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12570  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-31 21:59:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						18bdbc3dda 
					 
					
						
						
							
							Add a simple select instruction lowering pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12540  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-30 18:41:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4eddf37ee3 
					 
					
						
						
							
							Move loop extractor to the IPO header  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12374  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-14 02:36:34 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						dddea54b11 
					 
					
						
						
							
							Add the prototype for the LoopExtractor Pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11937  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-28 03:33:17 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						a92666decd 
					 
					
						
						
							
							Fix spelling of `tendency'.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11378  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-13 16:23:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fdd13f6afe 
					 
					
						
						
							
							Expose a pass ID for lower-invoke  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11377  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-13 16:16:35 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						d0fde30ce8 
					 
					
						
						
							
							Put all LLVM code into the llvm namespace, as per bug 109.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-11 22:41:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4a05ba0ab5 
					 
					
						
						
							
							Move isCriticalEdge & SplitCritical edge out of this file, which is only  
						
						... 
						
						
						
						for passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9851  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-10 04:09:44 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						d24fdda8e9 
					 
					
						
						
							
							Declare FunctionPasses as such.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-07 17:19:39 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						6fbcc26f14 
					 
					
						
						
							
							Added LLVM copyright header (for lack of a better term).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-20 20:19:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						98bf436e2e 
					 
					
						
						
							
							Rename loop preheaders pass to loop simplify  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9061  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-12 21:52:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e5252b4c9 
					 
					
						
						
							
							Add new prototype for createLowerInvokePass().  Make simplifycfg be a  
						
						... 
						
						
						
						functionpass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8870  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-05 19:15:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						48486893f4 
					 
					
						
						
							
							Standardize header file comments  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-30 18:37:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3fc6ef1bb9 
					 
					
						
						
							
							Expose the TCE pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8619  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-20 05:14:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						065a616ada 
					 
					
						
						
							
							Fix spell-o's  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8431  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-10 05:29:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3dc48c54de 
					 
					
						
						
							
							Add RPR prototype here  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8314  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-01 20:44:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2757af2d47 
					 
					
						
						
							
							Change the RaiseAllocations pass from being a BasicBlockPass to being a Pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-09-01 03:14:00 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						bf3c4cfaad 
					 
					
						
						
							
							Factory methods for function passes now return type FunctionPass *.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7839  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-14 06:09:32 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						19df3876e6 
					 
					
						
						
							
							Factory methods for FunctionPasses now return type FunctionPass *.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-13 18:18:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1ee7855dfa 
					 
					
						
						
							
							Add prototype for tail-dup pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6847  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-06-22 20:10:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a161f0c7c9 
					 
					
						
						
							
							Expose proto for SRoA pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6348  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-27 15:52:45 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						82c89b9f3a 
					 
					
						
						
							
							Hopefully, the final fix for `[Pp]ropogate'.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-20 21:01:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3b1ca40d5d 
					 
					
						
						
							
							Add stub to create lowerSwitches pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5866  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-04-23 16:24:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e802a023d9 
					 
					
						
						
							
							Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4075  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-10-08 21:06:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f6b684c505 
					 
					
						
						
							
							Checkin new loop-preheader insertion pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3943  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-09-26 16:17:33 +00:00