Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e5cb76d744 
								
							 
						 
						
							
							
								
								make "trivial" unswitching significantly more general.  It can now handle  
							
							 
							
							... 
							
							
							
							this for example:
  for (j = 0; j < N; ++j) {     // trivial unswitch
    if (C)
      P[i+j] = 0;
  }
turning it into the obvious code without bothering to duplicate an empty loop.
llvm-svn: 26220 
							
						 
						
							2006-02-15 22:03:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65152d80ec 
								
							 
						 
						
							
							
								
								Checking the wrong value.  This caused us to emit silly code like  
							
							 
							
							... 
							
							
							
							Y = seteq bool X, true
instead of just using X :)
llvm-svn: 26215 
							
						 
						
							2006-02-15 19:05:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								01db04efb0 
								
							 
						 
						
							
							
								
								more refactoring, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26194 
							
						 
						
							2006-02-15 01:44:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b0cbe7106e 
								
							 
						 
						
							
							
								
								pull some code out into a function  
							
							 
							
							... 
							
							
							
							llvm-svn: 26191 
							
						 
						
							2006-02-15 00:07:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0b8ec1a132 
								
							 
						 
						
							
							
								
								Use statistics to keep track of what flavors of loops we are unswitching  
							
							 
							
							... 
							
							
							
							llvm-svn: 26157 
							
						 
						
							2006-02-14 01:01:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fbadd7e1ee 
								
							 
						 
						
							
							
								
								implement unswitching of loops with switch stmts and selects in them  
							
							 
							
							... 
							
							
							
							llvm-svn: 26114 
							
						 
						
							2006-02-11 00:43:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f1b151684d 
								
							 
						 
						
							
							
								
								Update PHI nodes in successors of exit blocks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26113 
							
						 
						
							2006-02-10 23:26:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fe4151efe7 
								
							 
						 
						
							
							
								
								Reform the unswitching code in terms of edge splitting, not block splitting.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26112 
							
						 
						
							2006-02-10 23:16:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ec6b40a093 
								
							 
						 
						
							
							
								
								Fix a case where UnswitchTrivialCondition broke critical edges with  
							
							 
							
							... 
							
							
							
							phi's in the successors
llvm-svn: 26108 
							
						 
						
							2006-02-10 19:08:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6e263155a6 
								
							 
						 
						
							
							
								
								add some notes, move some code around.  Implement unswitching of loops  
							
							 
							
							... 
							
							
							
							with branches on partially invariant computations.
llvm-svn: 26104 
							
						 
						
							2006-02-10 02:30:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4935417a84 
								
							 
						 
						
							
							
								
								Move code around to be more logical, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26103 
							
						 
						
							2006-02-10 02:01:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3fc3148b85 
								
							 
						 
						
							
							
								
								When unswitching a trivial loop, do admit we are doing it! :)  
							
							 
							
							... 
							
							
							
							llvm-svn: 26102 
							
						 
						
							2006-02-10 01:36:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ed7a67b0de 
								
							 
						 
						
							
							
								
								Implement unconditional unswitching of 'trivial' loops, those loops that contain  
							
							 
							
							... 
							
							
							
							branches in their entry block that control whether or not the loop is a noop or not.
llvm-svn: 26101 
							
						 
						
							2006-02-10 01:24:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4f0e66df6a 
								
							 
						 
						
							
							
								
								Simplify control flow a bit, note that unswitch preserves canonical loop form  
							
							 
							
							... 
							
							
							
							llvm-svn: 26098 
							
						 
						
							2006-02-09 22:15:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8976219850 
								
							 
						 
						
							
							
								
								Make the threshold a parameter  
							
							 
							
							... 
							
							
							
							llvm-svn: 26093 
							
						 
						
							2006-02-09 20:15:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2826e0511b 
								
							 
						 
						
							
							
								
								Simplify the loop-unswitch pass, by not even trying to unswitch loops with  
							
							 
							
							... 
							
							
							
							uses of loop values outside the loop.  We need loop-closed SSA form to do
this right, or to use SSA rewriting if we really care.
llvm-svn: 26089 
							
						 
						
							2006-02-09 19:14:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c597b8a55e 
								
							 
						 
						
							
							
								
								Make iostream #inclusion explicit  
							
							 
							
							... 
							
							
							
							llvm-svn: 25514 
							
						 
						
							2006-01-22 23:32:06 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								eca0d0f2da 
								
							 
						 
						
							
							
								
								Put createLoopUnswitchPass() into proper namespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 19306 
							
						 
						
							2005-01-06 05:47:18 +00:00  
						
					 
				
					
						
							
							
								 
								Alkis Evlogimenos
							
						 
						
							 
							
							
							
							
								
							
							
								a5c04ee50f 
								
							 
						 
						
							
							
								
								Fixes to make LLVM compile with vc7.1.  
							
							 
							
							... 
							
							
							
							Patch contributed by Paolo Invernizzi!
llvm-svn: 16152 
							
						 
						
							2004-09-03 18:19:51 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								7c16caa336 
								
							 
						 
						
							
							
								
								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/.
llvm-svn: 16137 
							
						 
						
							2004-09-01 22:55:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f48f777d4c 
								
							 
						 
						
							
							
								
								Initial checkin of a simple loop unswitching pass.  It still needs work,  
							
							 
							
							... 
							
							
							
							but it's a start, and seems to do it's basic job.
llvm-svn: 13068 
							
						 
						
							2004-04-19 18:07:02 +00:00