b17f3e13ec 
								
							 
						 
						
							
							
								
								Adjust to new interfaces  
							
							... 
							
							
							
							llvm-svn: 18958 
							
						 
						
							2004-12-15 07:22:25 +00:00  
				
					
						
							
							
								 
						
							
								6e455608e2 
								
							 
						 
						
							
							
								
								Allow hoisting loads of globals and alloca's in conditionals.  
							
							... 
							
							
							
							llvm-svn: 18363 
							
						 
						
							2004-11-29 21:26:12 +00:00  
				
					
						
							
							
								 
						
							
								b137409926 
								
							 
						 
						
							
							
								
								Provide size information when checking to see if we can LICM a load, this  
							
							... 
							
							
							
							allows us to hoist more loads in some cases.
llvm-svn: 18265 
							
						 
						
							2004-11-26 21:20:09 +00:00  
				
					
						
							
							
								 
						
							
								f11216d24f 
								
							 
						 
						
							
							
								
								Fix a bug in the previous checkin that broke 255.vortex  
							
							... 
							
							
							
							llvm-svn: 16355 
							
						 
						
							2004-09-15 02:34:40 +00:00  
				
					
						
							
							
								 
						
							
								a346578d92 
								
							 
						 
						
							
							
								
								Make sure to update alias analysis information as we transform the function.  
							
							... 
							
							
							
							This fixes PR420 and Regression/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.llx
llvm-svn: 16348 
							
						 
						
							2004-09-15 01:04:07 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								50eb771d37 
								
							 
						 
						
							
							
								
								Fix hoisting of void typed values, e.g. calls  
							
							... 
							
							
							
							llvm-svn: 15263 
							
						 
						
							2004-07-27 07:38:32 +00:00  
				
					
						
							
							
								 
						
							
								42ad646104 
								
							 
						 
						
							
							
								
								Now that dominator tree children are built in determinstic order, this horrible code  
							
							... 
							
							
							
							can go away
llvm-svn: 14254 
							
						 
						
							2004-06-19 20:23:35 +00:00  
				
					
						
							
							
								 
						
							
								ec2d34cc19 
								
							 
						 
						
							
							
								
								Fix one source of nondeterminism in the -licm pass: the hoist pass  
							
							... 
							
							
							
							was processing blocks in whatever order they happened to end up in the
dominator tree data structure.  Force an ordering.
llvm-svn: 14248 
							
						 
						
							2004-06-19 08:56:43 +00:00  
				
					
						
							
							
								 
						
							
								661963c63f 
								
							 
						 
						
							
							
								
								Fix typo in DEBUG printout.  
							
							... 
							
							
							
							llvm-svn: 14196 
							
						 
						
							2004-06-17 07:26:52 +00:00  
				
					
						
							
							
								 
						
							
								289ba2ac4d 
								
							 
						 
						
							
							
								
								Adjust to the changes in the AliasSetTracker interface  
							
							... 
							
							
							
							llvm-svn: 13690 
							
						 
						
							2004-05-23 21:20:19 +00:00  
				
					
						
							
							
								 
						
							
								fc44a25bcb 
								
							 
						 
						
							
							
								
								Move isLoopInvariant to the Loop class  
							
							... 
							
							
							
							llvm-svn: 13051 
							
						 
						
							2004-04-18 22:46:08 +00:00  
				
					
						
							
							
								 
						
							
								35eaa55cfc 
								
							 
						 
						
							
							
								
								Loop exit sets are no longer explicitly held, they are dynamically computed on demand.  
							
							... 
							
							
							
							llvm-svn: 13046 
							
						 
						
							2004-04-18 22:15:13 +00:00  
				
					
						
							
							
								 
						
							
								20cda2645e 
								
							 
						 
						
							
							
								
								Implement LICM of calls in simple cases.  This is sufficient to move around  
							
							... 
							
							
							
							sin/cos/strlen calls and stuff.  This implements:
  LICM/call_sink_pure_function.ll
  LICM/call_sink_const_function.ll
llvm-svn: 12415 
							
						 
						
							2004-03-15 04:11:30 +00:00  
				
					
						
							
							
								 
						
							
								cacd30b957 
								
							 
						 
						
							
							
								
								Update comment  
							
							... 
							
							
							
							llvm-svn: 11082 
							
						 
						
							2004-02-02 20:09:22 +00:00  
				
					
						
							
							
								 
						
							
								59d2d7fc33 
								
							 
						 
						
							
							
								
								Improve encapsulation in the Loop and LoopInfo classes by eliminating the  
							
							... 
							
							
							
							getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
llvm-svn: 10714 
							
						 
						
							2004-01-08 00:09:44 +00:00  
				
					
						
							
							
								 
						
							
								918460190f 
								
							 
						 
						
							
							
								
								Remove the wierd "Operands" loop, by traversing basicblocks in reverse order  
							
							... 
							
							
							
							llvm-svn: 10536 
							
						 
						
							2003-12-19 08:18:16 +00:00  
				
					
						
							
							
								 
						
							
								547192d688 
								
							 
						 
						
							
							
								
								Implement LICM/sink_multiple.ll, by sinking all possible instructions in the  
							
							... 
							
							
							
							loop before hoisting any.
llvm-svn: 10534 
							
						 
						
							2003-12-19 07:22:45 +00:00  
				
					
						
							
							
								 
						
							
								9e2b42a0c8 
								
							 
						 
						
							
							
								
								When we delete instructions from the loop, make sure to remove them from the  
							
							... 
							
							
							
							AliasSetTracker as well.
llvm-svn: 10507 
							
						 
						
							2003-12-18 08:12:32 +00:00  
				
					
						
							
							
								 
						
							
								d1c371c32c 
								
							 
						 
						
							
							
								
								Do not promote volatile alias sets into registers  
							
							... 
							
							
							
							llvm-svn: 10458 
							
						 
						
							2003-12-14 04:52:31 +00:00  
				
					
						
							
							
								 
						
							
								34399dda2d 
								
							 
						 
						
							
							
								
								Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other known problems in the universe.  
							
							... 
							
							
							
							llvm-svn: 10409 
							
						 
						
							2003-12-11 22:23:32 +00:00  
				
					
						
							
							
								 
						
							
								6281fd3ead 
								
							 
						 
						
							
							
								
								Fix bug: LICM/sink_multiple_exits.ll  
							
							... 
							
							
							
							Thanks for pointing this out John  :)
llvm-svn: 10387 
							
						 
						
							2003-12-10 22:35:56 +00:00  
				
					
						
							
							
								 
						
							
								55c2113b7b 
								
							 
						 
						
							
							
								
								Don't allow dead instructions to stop sinking early.  
							
							... 
							
							
							
							llvm-svn: 10386 
							
						 
						
							2003-12-10 20:43:29 +00:00  
				
					
						
							
							
								 
						
							
								6364314a6e 
								
							 
						 
						
							
							
								
								Simplify code  
							
							... 
							
							
							
							llvm-svn: 10371 
							
						 
						
							2003-12-10 16:58:24 +00:00  
				
					
						
							
							
								 
						
							
								48b4b852b4 
								
							 
						 
						
							
							
								
								Avoid performing two identical lookups when one will suffice  
							
							... 
							
							
							
							llvm-svn: 10370 
							
						 
						
							2003-12-10 16:57:24 +00:00  
				
					
						
							
							
								 
						
							
								edda1af35a 
								
							 
						 
						
							
							
								
								Make LICM itself a bit more efficient, and make the generated code more efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop  
							
							... 
							
							
							
							llvm-svn: 10369 
							
						 
						
							2003-12-10 15:56:24 +00:00  
				
					
						
							
							
								 
						
							
								aaaea51090 
								
							 
						 
						
							
							
								
								Implement instruction sinking out of loops.  This still can do a little bit  
							
							... 
							
							
							
							better job, but this is the majority of the work.  This implements
LICM/sink*.ll
llvm-svn: 10358 
							
						 
						
							2003-12-10 06:41:05 +00:00  
				
					
						
							
							
								 
						
							
								65c1193d55 
								
							 
						 
						
							
							
								
								Refactor code a little bit, eliminating the gratuitous InstVisitor, which  
							
							... 
							
							
							
							should make subsequent changes simpler.  This also allows us to hoist vaarg
and vanext instructions
llvm-svn: 10342 
							
						 
						
							2003-12-09 19:32:44 +00:00  
				
					
						
							
							
								 
						
							
								c05176843e 
								
							 
						 
						
							
							
								
								Fine grainify namespacification  
							
							... 
							
							
							
							Code cleanups
Make LICM::SafeToHoist marginally more efficient
llvm-svn: 10341 
							
						 
						
							2003-12-09 17:18:00 +00:00  
				
					
						
							
							
								 
						
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
				
					
						
							
							
								 
						
							
								ad03afcb34 
								
							 
						 
						
							
							
								
								Declare FunctionPasses as such so that they can be used in FunctionPassManager.  
							
							... 
							
							
							
							llvm-svn: 9768 
							
						 
						
							2003-11-07 17:20:18 +00:00  
				
					
						
							
							
								 
						
							
								482202a601 
								
							 
						 
						
							
							
								
								Added LLVM project notice to the top of every C++ source file.  
							
							... 
							
							
							
							Header files will be on the way.
llvm-svn: 9298 
							
						 
						
							2003-10-20 19:43:21 +00:00  
				
					
						
							
							
								 
						
							
								178957028b 
								
							 
						 
						
							
							
								
								Wrap code at 80 columns  
							
							... 
							
							
							
							llvm-svn: 9073 
							
						 
						
							2003-10-13 05:04:27 +00:00  
				
					
						
							
							
								 
						
							
								72272a70b8 
								
							 
						 
						
							
							
								
								Rename loop preheaders pass to loop simplify  
							
							... 
							
							
							
							llvm-svn: 9061 
							
						 
						
							2003-10-12 21:52:28 +00:00  
				
					
						
							
							
								 
						
							
								8b2bd4ed47 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							... 
							
							
							
							llvm-svn: 9027 
							
						 
						
							2003-10-10 17:57:28 +00:00  
				
					
						
							
							
								 
						
							
								a906bacfdd 
								
							 
						 
						
							
							
								
								Change the interface to PromoteMemToReg to also take a DominatorTree  
							
							... 
							
							
							
							llvm-svn: 8883 
							
						 
						
							2003-10-05 21:20:13 +00:00  
				
					
						
							
							
								 
						
							
								bb9d03b9c0 
								
							 
						 
						
							
							
								
								Renamed DominatorTree::Node::getNode() -> getBlock()  
							
							... 
							
							
							
							llvm-svn: 8469 
							
						 
						
							2003-09-11 16:26:13 +00:00  
				
					
						
							
							
								 
						
							
								9b8d339f6e 
								
							 
						 
						
							
							
								
								Spell `definite' correctly.  
							
							... 
							
							
							
							llvm-svn: 8467 
							
						 
						
							2003-09-11 15:32:37 +00:00  
				
					
						
							
							
								 
						
							
								216c7b8aed 
								
							 
						 
						
							
							
								
								Fix spell-o's  
							
							... 
							
							
							
							llvm-svn: 8431 
							
						 
						
							2003-09-10 05:29:43 +00:00  
				
					
						
							
							
								 
						
							
								01a8391236 
								
							 
						 
						
							
							
								
								Do not hoist volatile loads  
							
							... 
							
							
							
							llvm-svn: 8399 
							
						 
						
							2003-09-08 18:17:14 +00:00  
				
					
						
							
							
								 
						
							
								dc3c9a8545 
								
							 
						 
						
							
							
								
								Fixed minor bug in SafeToHoist and made some changes suggested by Chris.  
							
							... 
							
							
							
							llvm-svn: 7614 
							
						 
						
							2003-08-05 20:39:02 +00:00  
				
					
						
							
							
								 
						
							
								57c03df032 
								
							 
						 
						
							
							
								
								Fixed LICM bug that hoists trapping instructions that are not guaranteed to execute.  
							
							... 
							
							
							
							llvm-svn: 7612 
							
						 
						
							2003-08-05 18:45:46 +00:00  
				
					
						
							
							
								 
						
							
								8abcd56c74 
								
							 
						 
						
							
							
								
								DEBUG got moved to Support/Debug.h  
							
							... 
							
							
							
							llvm-svn: 7492 
							
						 
						
							2003-08-01 22:15:03 +00:00  
				
					
						
							
							
								 
						
							
								889f620841 
								
							 
						 
						
							
							
								
								Remove unnecesary &*'s  
							
							... 
							
							
							
							llvm-svn: 5872 
							
						 
						
							2003-04-23 16:37:45 +00:00  
				
					
						
							
							
								 
						
							
								0592bb7654 
								
							 
						 
						
							
							
								
								Convert LICM over to use AliasSetTracker.  Besides being nicer, this automatically  
							
							... 
							
							
							
							allows LICM to use access sizes to help alias analysis be more precise.
llvm-svn: 5693 
							
						 
						
							2003-03-03 23:32:45 +00:00  
				
					
						
							
							
								 
						
							
								e27406eb59 
								
							 
						 
						
							
							
								
								Change the mem2reg interface to accept a TargetData argument  
							
							... 
							
							
							
							llvm-svn: 5685 
							
						 
						
							2003-03-03 17:25:18 +00:00  
				
					
						
							
							
								 
						
							
								e19a9f8ef7 
								
							 
						 
						
							
							
								
								Fix bug: LICM/2003-02-28-PromoteDifferentType.ll  
							
							... 
							
							
							
							llvm-svn: 5675 
							
						 
						
							2003-02-28 19:21:40 +00:00  
				
					
						
							
							
								 
						
							
								1ad80e2511 
								
							 
						 
						
							
							
								
								Fix bug: 2003-02-27-StoreSinkPHIs.ll  
							
							... 
							
							
							
							llvm-svn: 5658 
							
						 
						
							2003-02-27 21:59:36 +00:00  
				
					
						
							
							
								 
						
							
								71b82bb494 
								
							 
						 
						
							
							
								
								Convert to work with new AliasAnalysis interface by conservatively assuming all pointers are arbitrarily large accesses  
							
							... 
							
							
							
							llvm-svn: 5636 
							
						 
						
							2003-02-26 19:28:57 +00:00  
				
					
						
							
							
								 
						
							
								45d67d6ea7 
								
							 
						 
						
							
							
								
								Initial implementation of Loop invariant memory->scalar promotion  
							
							... 
							
							
							
							llvm-svn: 5613 
							
						 
						
							2003-02-24 03:52:32 +00:00