Devang Patel 
							
						 
					 
					
						
						
							
						
						82ada54da0 
					 
					
						
						
							
							Fix PR 1995.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46898  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-08 22:49:13 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c840da14c6 
					 
					
						
						
							
							Filter loops that subtract induction variables.  
						
						... 
						
						
						
						These loops are not yet handled.
Fix PR 1912.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-29 02:20:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ee451de36 
					 
					
						
						
							
							Remove attribution from file headers, per discussion on llvmdev.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 20:36:04 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						5ffdc56f53 
					 
					
						
						
							
							If ExitValue operand is also defined in Loop header then  
						
						... 
						
						
						
						insert new ExitValue after this operand definition.
This fixes PR1828.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44539  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-03 19:17:21 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						a6dff2faeb 
					 
					
						
						
							
							Handle multiple induction variables.  
						
						... 
						
						
						
						This fixes PR714.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-25 18:24:48 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1c01350f0f 
					 
					
						
						
							
							doh..  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42300  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-25 17:43:08 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						453a844128 
					 
					
						
						
							
							Add transformation to update loop interation space. Now,  
						
						... 
						
						
						
						for (i=A; i<N; i++) {
  if (i < X && i > Y)
    do_something();
}
is transformed into
U=min(N,X); L=max(A,Y);
for (i=L;i<U;i++)
  do_somethihg();                            
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42299  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-25 17:31:19 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						3f65f02d25 
					 
					
						
						
							
							Fix PR1692  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42209  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-21 21:18:19 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						d15dd8c525 
					 
					
						
						
							
							Don't increment invalid iterator.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42178  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-20 23:01:50 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						babbe27007 
					 
					
						
						
							
							Relax loop ExitCondition predicate restriction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42122  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-19 00:28:47 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						968eee2aa7 
					 
					
						
						
							
							Filter loops where split condition's false branch is not empty. For example  
						
						... 
						
						
						
						for (int i = 0; i < N; ++i) {
  if (i == somevalue)
    dosomething();
   else
    dosomethingelse();
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42121  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-19 00:15:16 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						84ef08bfee 
					 
					
						
						
							
							Bail out early, before modifying anything.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42120  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-19 00:11:01 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4e062e520a 
					 
					
						
						
							
							Work is incomplete. Loop is not modified at all right now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42119  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-19 00:08:13 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						8893ca6dab 
					 
					
						
						
							
							Do not eliminate loop when it is invalid to do so. For example,  
						
						... 
						
						
						
						for(int i = 0; i < N; i++) {
	if ( i == XYZ) {
		A;
	else
		B;
	}
	C;
	D;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42058  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-17 21:01:05 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						5279d064bc 
					 
					
						
						
							
							Skeleton for transformations to truncate loop's iteration space.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42054  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-17 20:39:48 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						c68491069a 
					 
					
						
						
							
							Temporary reverting r41817  
						
						... 
						
						
						
						(http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070910/053370.html ). It's
causing SPASS to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41938  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-14 01:13:55 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c3957d1983 
					 
					
						
						
							
							Avoid negative logic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41829  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-11 01:10:45 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						d35ed2c16d 
					 
					
						
						
							
							Refactor code into a separate method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41826  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-11 00:42:56 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						964be45e7c 
					 
					
						
						
							
							Clear split info object.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41823  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-11 00:23:56 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4f12c5f615 
					 
					
						
						
							
							Split condition does not have to be ICmpInst in all cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41822  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-11 00:12:56 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						ba32a5f3cc 
					 
					
						
						
							
							Check all terminators inside loop.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41821  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-10 23:57:58 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0c0f7c935b 
					 
					
						
						
							
							Swap exit condition operands if it works.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41817  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-10 23:34:06 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						9c7a9f186c 
					 
					
						
						
							
							Filter exit conditions which are not yet handled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41800  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-09-10 18:33:42 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1cd39a4f6e 
					 
					
						
						
							
							Use simpler test to filter loops.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41516  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-27 21:34:31 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						d79faee69a 
					 
					
						
						
							
							Move exit condition and exit branch from exiting block into loop header and dominator info. This avoid execution of dead iteration. Loop is already filter in the beginning such that this change is safe.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41394  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-25 02:39:24 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						be97c986e1 
					 
					
						
						
							
							Constant split values needs upper bound and lower bound check, just like any other split value.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41389  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-25 01:09:14 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4a69da9cb0 
					 
					
						
						
							
							While calculating upper loop bound for first loop and lower loop bound for second loop, take care of edge cases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41387  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-25 00:56:38 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						7097e9a710 
					 
					
						
						
							
							Fix regression that I caused yesterday night while adding logic to select appropriate split condition branch.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41365  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-24 19:32:26 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4259fe3281 
					 
					
						
						
							
							It is not safe to execute split condition's true branch first all the time. If split  
						
						... 
						
						
						
						condition predicate is GT or GE then execute false branch first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41358  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-24 06:17:19 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c830aee8e8 
					 
					
						
						
							
							Reject ICMP_NE as index split condition.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41357  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-24 06:02:25 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						b88e4200cf 
					 
					
						
						
							
							Tightenup loop filter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41356  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-24 05:36:56 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						7237d1167a 
					 
					
						
						
							
							Remove incomplete cost analysis.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41354  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-24 05:21:13 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						40fc353a0d 
					 
					
						
						
							
							Remove dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41295  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-22 21:07:41 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						a24d918063 
					 
					
						
						
							
							Fix typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41292  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-22 20:55:18 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						a8644e306d 
					 
					
						
						
							
							Cosmetic change  
						
						... 
						
						
						
						"True Loop" and "False Loop" naming terminology to refer two loops
after loop cloning is confusing. Instead just use A_Loop and B_Loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41287  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-22 19:33:29 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						dc52395353 
					 
					
						
						
							
							Refactor loop condition check in a separate function.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41282  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-22 18:27:01 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						ea0fa97334 
					 
					
						
						
							
							Fix thinko.  
						
						... 
						
						
						
						Starting value of second loop's induction variable can not be lower 
then starting value of original loop's induction variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41280  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-22 18:07:47 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0b8e02b704 
					 
					
						
						
							
							Rename bunch of variables.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-21 21:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						60cbab4252 
					 
					
						
						
							
							Preserve LCSSA.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41246  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-21 19:47:46 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1cc2ec8d20 
					 
					
						
						
							
							s/ExitBlock/ExitingBlock/g  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41204  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-20 23:51:18 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						ebc5fea695 
					 
					
						
						
							
							Replace indunction variable with split value in loop body.  
						
						... 
						
						
						
						This fixes art miscompile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41195  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-20 20:49:01 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						d651f657f2 
					 
					
						
						
							
							Do not split loops rejected by processOneIterationLoop().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41194  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-20 20:24:15 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						20d260a193 
					 
					
						
						
							
							Avoid spliting loops where two split condition branches are not independent.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41148  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-18 00:00:32 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						96bf524b53 
					 
					
						
						
							
							When one branch of condition is eliminated then head of the other  
						
						... 
						
						
						
						branch is not necessary immediate dominators of merge blcok in all cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41144  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-17 21:59:16 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						7375bb9c8c 
					 
					
						
						
							
							Dominance frontier is now required.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41096  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-15 03:34:53 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						5b8ec614f5 
					 
					
						
						
							
							Cleanup removeBlocks.  
						
						... 
						
						
						
						Use dominance frontier to fixup incoming edges of successor blocks not domianted by DeadBB.
Use df_iterator to walk and delete basic blocks dominated by DeadBB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41095  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-15 03:31:47 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						e9dd95ad9c 
					 
					
						
						
							
							Remove unneeded header file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41094  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-15 03:01:04 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						3fe4f2135a 
					 
					
						
						
							
							Avoid triangle loops.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41093  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-15 02:14:55 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4e8061cbda 
					 
					
						
						
							
							Avoid nested loops at the moment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41090  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-14 23:53:57 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						a6a8663894 
					 
					
						
						
							
							Fix dominance frontier update while removing blocks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41082  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-14 18:35:57 +00:00