Zhou Sheng
							
						 
						
							 
							
							
							
							
								
							
							
								75b871fb1e 
								
							 
						 
						
							
							
								
								For PR1043:  
							
							 
							
							... 
							
							
							
							Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073 
							
						 
						
							2007-01-11 12:24:14 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								266e42b312 
								
							 
						 
						
							
							
								
								For PR950:  
							
							 
							
							... 
							
							
							
							This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751 
							
						 
						
							2006-12-23 06:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								79a42ac941 
								
							 
						 
						
							
							
								
								Switch over Transforms/Scalar to use the STATISTIC macro.  For each statistic  
							
							 
							
							... 
							
							
							
							converted, we lose a static initializer.  This also allows GCC to emit warnings
about unused statistics.
llvm-svn: 32690 
							
						 
						
							2006-12-19 21:40:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							 
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								5dbf43c983 
								
							 
						 
						
							
							
								
								Removed #include <iostream> and replaced with llvm_* streams.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31923 
							
						 
						
							2006-11-26 09:46:52 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							 
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6ab03f6a08 
								
							 
						 
						
							
							
								
								Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide  
							
							 
							
							... 
							
							
							
							ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30665 
							
						 
						
							2006-09-28 23:35:22 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								f489d0f85c 
								
							 
						 
						
							
							
								
								Do not rely on std::sort and std::erase to get list of unique  
							
							 
							
							... 
							
							
							
							exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966 
							
						 
						
							2006-08-29 22:29:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2d3d3112e 
								
							 
						 
						
							
							
								
								eliminate RegisterOpt.  It does the same thing as RegisterPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29925 
							
						 
						
							2006-08-27 22:42:52 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								00b974cdbc 
								
							 
						 
						
							
							
								
								Fix a error that hadn't yet cause any problems, but I'm sure it would have  
							
							 
							
							... 
							
							
							
							somewhere down the road.
llvm-svn: 29197 
							
						 
						
							2006-07-19 03:51:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								18e816f356 
								
							 
						 
						
							
							
								
								Switch to a very conservative heuristic for determining when loop-unswitching  
							
							 
							
							... 
							
							
							
							will be profitable.  This is mainly to remove some cases where excessive
unswitching would result in long compile times and/or huge generated code.
Once someone comes up with a better heuristic that avoids these cases, this
should be switched out.
llvm-svn: 28962 
							
						 
						
							2006-06-28 17:47:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0a2e11260e 
								
							 
						 
						
							
							
								
								Don't unswitch really large loops even if they are mostly filled with empty  
							
							 
							
							... 
							
							
							
							blocks.
llvm-svn: 28959 
							
						 
						
							2006-06-28 16:38:55 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								bb3ae5eb8f 
								
							 
						 
						
							
							
								
								Fix for 2006-06-27-DeadSwitchCase.ll  
							
							 
							
							... 
							
							
							
							Be more careful when updating Phi nodes after eliminating dead switch cases.  Fix
proposed by Chris.
llvm-svn: 28947 
							
						 
						
							2006-06-27 22:26:09 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f52351e50f 
								
							 
						 
						
							
							
								
								Make LoopUnswitch able to unswitch loops with live-out values by taking advantage  
							
							 
							
							... 
							
							
							
							of LCSSA.  This results several times the number of unswitchings occurring on
tests such and timberwolfmc, unix-tbl, and ldecod.
llvm-svn: 28912 
							
						 
						
							2006-06-26 07:44:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0c4f5a655a 
								
							 
						 
						
							
							
								
								Fix Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll, a loop unswitch  
							
							 
							
							... 
							
							
							
							bug exposed by the recent lcssa work.
llvm-svn: 28779 
							
						 
						
							2006-06-14 04:46:17 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								fd0a3d6e5c 
								
							 
						 
						
							
							
								
								Reapply my 6/9 changes.  The bug Evan saw no longer occurs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28759 
							
						 
						
							2006-06-12 21:49:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1b6e310e6f 
								
							 
						 
						
							
							
								
								Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).  
							
							 
							
							... 
							
							
							
							llvm-svn: 28747 
							
						 
						
							2006-06-11 09:32:57 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b1dc1d44f8 
								
							 
						 
						
							
							
								
								Add LCSSA as a requirement for LoopUnswitch, and assert that LoopUnswitch preserves  
							
							 
							
							... 
							
							
							
							LCSSA.
llvm-svn: 28739 
							
						 
						
							2006-06-09 18:40:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5821a6a17a 
								
							 
						 
						
							
							
								
								add the actual cost to the debug info  
							
							 
							
							... 
							
							
							
							llvm-svn: 27051 
							
						 
						
							2006-03-24 07:14:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e5521db5bc 
								
							 
						 
						
							
							
								
								Fix Regression/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll, which  
							
							 
							
							... 
							
							
							
							caused SPASS to fail building last night.
We can't trivially unswitch a loop if the exit block has phi nodes in it,
because we don't know which predecessor to use.
llvm-svn: 26320 
							
						 
						
							2006-02-22 23:55:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8a5a324dac 
								
							 
						 
						
							
							
								
								Add some comments, simplify some code, and fix a bug that caused rewriting  
							
							 
							
							... 
							
							
							
							to rewrite with the wrong value.
llvm-svn: 26311 
							
						 
						
							2006-02-22 06:37:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2e3a7a4ce 
								
							 
						 
						
							
							
								
								improved support for branch folding, still not enabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26289 
							
						 
						
							2006-02-18 07:57:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								19fa8ac938 
								
							 
						 
						
							
							
								
								Implement deletion of dead blocks, currently disabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26285 
							
						 
						
							2006-02-18 02:42:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cb853de534 
								
							 
						 
						
							
							
								
								a previous patch completely disabled trivial unswitching, this fixees it.  
							
							 
							
							... 
							
							
							
							Thanks to nate for pointing this out :)
llvm-svn: 26280 
							
						 
						
							2006-02-18 01:32:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								29f771ba21 
								
							 
						 
						
							
							
								
								initial trivial support for folding branches that have now-constant destinations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26279 
							
						 
						
							2006-02-18 01:27:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8e44ff50b0 
								
							 
						 
						
							
							
								
								When unswitching a loop, make sure to update loop info with exit blocks in  
							
							 
							
							... 
							
							
							
							the right loop.
llvm-svn: 26277 
							
						 
						
							2006-02-18 00:55:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								baddba41c7 
								
							 
						 
						
							
							
								
								Fix loops where the header has an exit, fixing a loop-unswitch crash on crafty  
							
							 
							
							... 
							
							
							
							llvm-svn: 26258 
							
						 
						
							2006-02-17 06:39:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6fd136239b 
								
							 
						 
						
							
							
								
								start of some new simplification code, not thoroughly tested, use at your own  
							
							 
							
							... 
							
							
							
							risk :)
llvm-svn: 26248 
							
						 
						
							2006-02-17 00:31:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fa335f6083 
								
							 
						 
						
							
							
								
								Change SplitBlock to increment a BasicBlock::iterator, not an Instruction*.  Apparently they do different things :)  
							
							 
							
							... 
							
							
							
							This fixes a testcase that nate reduced from spass.
Also included are a couple minor code changes that don't affect the generated
code at all.
llvm-svn: 26235 
							
						 
						
							2006-02-16 19:36:22 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								55f63f1b53 
								
							 
						 
						
							
							
								
								Fix VC++ warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26228 
							
						 
						
							2006-02-16 04:07:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ff42e81028 
								
							 
						 
						
							
							
								
								fix a bug where we unswitched the wrong way  
							
							 
							
							... 
							
							
							
							llvm-svn: 26225 
							
						 
						
							2006-02-16 01:24:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fdff0bb43e 
								
							 
						 
						
							
							
								
								Implement trivial unswitching for switch stmts.  This allows us to trivial  
							
							 
							
							... 
							
							
							
							unswitch this loop on 2 before sweating to unswitch on 1/3.
void test4(int N, int i, int C, int*P, int*Q) {
  int j;
  for (j = 0; j < N; ++j) {
    switch (C) {                // general unswitching.
    default: P[i+j] = 0; break;
    case 1: Q[i+j] = 0; break;
    case 3: P[i+j] = Q[i+j]; break;
    case 2: break;              //  TRIVIAL UNSWITCH on C==2
    }
  }
}
llvm-svn: 26223 
							
						 
						
							2006-02-15 22:52:05 +00:00  
						
					 
				
					
						
							
							
								 
								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