225d9b15b5 
								
							 
						 
						
							
							
								
								Spruce up the error output.  
							
							... 
							
							
							
							llvm-svn: 128451 
							
						 
						
							2011-03-29 04:28:26 +00:00  
				
					
						
							
							
								 
						
							
								050eec1d1d 
								
							 
						 
						
							
							
								
								Update a comment.  
							
							... 
							
							
							
							llvm-svn: 123879 
							
						 
						
							2011-01-20 03:58:43 +00:00  
				
					
						
							
							
								 
						
							
								dfc547d181 
								
							 
						 
						
							
							
								
								Remove an unnecessary #include.  
							
							... 
							
							
							
							llvm-svn: 123748 
							
						 
						
							2011-01-18 06:07:18 +00:00  
				
					
						
							
							
								 
						
							
								6b0c4c9b6c 
								
							 
						 
						
							
							
								
								Move DominanceFrontier from VMCore to Analysis.  
							
							... 
							
							
							
							llvm-svn: 123747 
							
						 
						
							2011-01-18 06:06:27 +00:00  
				
					
						
							
							
								 
						
							
								ce25e88218 
								
							 
						 
						
							
							
								
								There is no point in verifying an analysis that is never updated.  
							
							... 
							
							
							
							llvm-svn: 123743 
							
						 
						
							2011-01-18 05:44:04 +00:00  
				
					
						
							
							
								 
						
							
								66f3c66b9d 
								
							 
						 
						
							
							
								
								Remove some now-unused DominanceFrontier methods.  
							
							... 
							
							
							
							llvm-svn: 123726 
							
						 
						
							2011-01-18 04:21:57 +00:00  
				
					
						
							
							
								 
						
							
								5f7734c4a5 
								
							 
						 
						
							
							
								
								make domtree verification print something useful on failure.  
							
							... 
							
							
							
							llvm-svn: 123078 
							
						 
						
							2011-01-08 19:55:55 +00:00  
				
					
						
							
							
								 
						
							
								bf0aa927cc 
								
							 
						 
						
							
							
								
								split dom frontier handling stuff out to its own DominanceFrontier header,  
							
							... 
							
							
							
							so that Dominators.h is *just* domtree.  Also prune #includes a bit.
llvm-svn: 122714 
							
						 
						
							2011-01-02 22:09:33 +00:00  
				
					
						
							
							
								 
						
							
								8ac477ffb5 
								
							 
						 
						
							
							
								
								Begin adding static dependence information to passes, which will allow us to  
							
							... 
							
							
							
							perform initialization without static constructors AND without explicit initialization
by the client.  For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve.  I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334 
							
						 
						
							2010-10-12 19:48:12 +00:00  
				
					
						
							
							
								 
						
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
				
					
						
							
							
								 
						
							
								accaca5604 
								
							 
						 
						
							
							
								
								Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock:  
							
							... 
							
							
							
							don't visit all blocks in the function, and don't iterate over the split blocks'
predecessor lists for each block visited.
Also, remove the special-case test for the entry block. Splitting the entry
block isn't common enough to make this worthwhile.
This fixes a major compile-time bottleneck which is exposed now that
LoopSimplify isn't being redundantly run both before and after
DominanceFrontier.
llvm-svn: 109408 
							
						 
						
							2010-07-26 17:55:15 +00:00  
				
					
						
							
							
								 
						
							
								30005444fe 
								
							 
						 
						
							
							
								
								Avoid copying and recopying a std::set.  
							
							... 
							
							
							
							llvm-svn: 109405 
							
						 
						
							2010-07-26 17:45:33 +00:00  
				
					
						
							
							
								 
						
							
								2307c4bb76 
								
							 
						 
						
							
							
								
								Exit a search loop when the search goal is found.  
							
							... 
							
							
							
							llvm-svn: 109404 
							
						 
						
							2010-07-26 17:41:45 +00:00  
				
					
						
							
							
								 
						
							
								45af0ad182 
								
							 
						 
						
							
							
								
								Fix formatting.  
							
							... 
							
							
							
							llvm-svn: 109403 
							
						 
						
							2010-07-26 17:39:33 +00:00  
				
					
						
							
							
								 
						
							
								a57b97e7e7 
								
							 
						 
						
							
							
								
								Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
							
							... 
							
							
							
							llvm-svn: 109045 
							
						 
						
							2010-07-21 22:09:45 +00:00  
				
					
						
							
							
								 
						
							
								3d84c9c793 
								
							 
						 
						
							
							
								
								LoopSimplify does not update domfrontier correctly.  
							
							... 
							
							
							
							This fixes PR7649.
llvm-svn: 108513 
							
						 
						
							2010-07-16 05:59:45 +00:00  
				
					
						
							
							
								 
						
							
								bd7c9f701b 
								
							 
						 
						
							
							
								
								Add dump() to DominanceFrontier  
							
							... 
							
							
							
							llvm-svn: 108512 
							
						 
						
							2010-07-16 05:59:39 +00:00  
				
					
						
							
							
								 
						
							
								b29cda9b3c 
								
							 
						 
						
							
							
								
								Fix a bunch of namespace polution.  
							
							... 
							
							
							
							llvm-svn: 101376 
							
						 
						
							2010-04-15 17:08:50 +00:00  
				
					
						
							
							
								 
						
							
								70e572e740 
								
							 
						 
						
							
							
								
								Fix a typo and some indentation.  
							
							... 
							
							
							
							llvm-svn: 100908 
							
						 
						
							2010-04-09 22:47:25 +00:00  
				
					
						
							
							
								 
						
							
								086bb4ef82 
								
							 
						 
						
							
							
								
								Qualify a bunch of explicit template instantiations to satisfy clang++.  
							
							... 
							
							
							
							llvm-svn: 91736 
							
						 
						
							2009-12-19 00:55:12 +00:00  
				
					
						
							
							
								 
						
							
								2cbca4e229 
								
							 
						 
						
							
							
								
								Make DominanceFrontierBase::print's output prettier.  
							
							... 
							
							
							
							llvm-svn: 85011 
							
						 
						
							2009-10-24 20:01:11 +00:00  
				
					
						
							
							
								 
						
							
								08d86dac71 
								
							 
						 
						
							
							
								
								Remove temporary debugging hack.  
							
							... 
							
							
							
							llvm-svn: 82953 
							
						 
						
							2009-09-28 00:44:15 +00:00  
				
					
						
							
							
								 
						
							
								4dbb301f17 
								
							 
						 
						
							
							
								
								Move the dominator verification code out of special code embedded within  
							
							... 
							
							
							
							the PassManager code into a regular verifyAnalysis method.
Also, reorganize loop verification. Make the LoopPass infrastructure
call verifyLoop as needed instead of having LoopInfo::verifyAnalysis
check every loop in the function after each looop pass. Add a new
command-line argument, -verify-loop-info, to enable the expensive
full checking.
llvm-svn: 82952 
							
						 
						
							2009-09-28 00:27:48 +00:00  
				
					
						
							
							
								 
						
							
								cf295039e4 
								
							 
						 
						
							
							
								
								Fix PR5023: The instruction form of DominatorTree::dominates did not  
							
							... 
							
							
							
							take into consideration that the result of an invoke is only valid in
the normal dest, not the unwind dest.  This caused 'PHINode::hasConstantValue'
to return true in an invalid situation, causing mem2reg to delete a phi that
was actually needed.  This caused a crash building 483.xalancbmk.
llvm-svn: 82491 
							
						 
						
							2009-09-21 22:39:35 +00:00  
				
					
						
							
							
								 
						
							
								22151ce5e9 
								
							 
						 
						
							
							
								
								move DominatorTree::dominates for instructions out of line,  
							
							... 
							
							
							
							no functionality change.
llvm-svn: 82490 
							
						 
						
							2009-09-21 22:30:50 +00:00  
				
					
						
							
							
								 
						
							
								1362602eb2 
								
							 
						 
						
							
							
								
								Change Pass::print to take a raw ostream instead of std::ostream,  
							
							... 
							
							
							
							update all code that this affects.
llvm-svn: 79830 
							
						 
						
							2009-08-23 06:03:38 +00:00  
				
					
						
							
							
								 
						
							
								b1d782bec9 
								
							 
						 
						
							
							
								
								eliminate the std::ostream form of WriteAsOperand and update clients.  
							
							... 
							
							
							
							This also updates dominator related stuff.
llvm-svn: 79825 
							
						 
						
							2009-08-23 05:17:37 +00:00  
				
					
						
							
							
								 
						
							
								b1bf2009a4 
								
							 
						 
						
							
							
								
								switch DominanceFrontier::splitBlock to use a smallvector for  
							
							... 
							
							
							
							the pred list instead of a vector, saving a boat load of malloc/free's.
llvm-svn: 79062 
							
						 
						
							2009-08-15 01:39:28 +00:00  
				
					
						
							
							
								 
						
							
								0ac904455e 
								
							 
						 
						
							
							
								
								Fix some incorrect logic in DominanceFrontier::splitBlock.  Part of  
							
							... 
							
							
							
							PR4238.
llvm-svn: 72223 
							
						 
						
							2009-05-21 20:40:30 +00:00  
				
					
						
							
							
								 
						
							
								81ea3bb55c 
								
							 
						 
						
							
							
								
								Move dominator info printer into tool/opt/GraphPrinters.cpp  
							
							... 
							
							
							
							llvm-svn: 52907 
							
						 
						
							2008-06-30 17:32:58 +00:00  
				
					
						
							
							
								 
						
							
								abc6e6ab9f 
								
							 
						 
						
							
							
								
								Add dominator info printer pass.  
							
							... 
							
							
							
							llvm-svn: 52829 
							
						 
						
							2008-06-27 16:43:21 +00:00  
				
					
						
							
							
								 
						
							
								a9fcf009a3 
								
							 
						 
						
							
							
								
								Dominance Frontier is cfg only pass.  
							
							... 
							
							
							
							llvm-svn: 51075 
							
						 
						
							2008-05-13 22:43:21 +00:00  
				
					
						
							
							
								 
						
							
								00cab5b9a6 
								
							 
						 
						
							
							
								
								don't print dominators every time it is computed with -debug.  
							
							... 
							
							
							
							llvm-svn: 50032 
							
						 
						
							2008-04-21 06:19:02 +00:00  
				
					
						
							
							
								 
						
							
								57236b58f7 
								
							 
						 
						
							
							
								
								Major repairs to the post-dominators implementation.  Patch from Florian Brandner!  
							
							... 
							
							
							
							llvm-svn: 49768 
							
						 
						
							2008-04-16 04:21:16 +00:00  
				
					
						
							
							
								 
						
							
								4d638f1a42 
								
							 
						 
						
							
							
								
								These passes preserve CFG.  
							
							... 
							
							
							
							This patch fixes Benchmarks/Trimaran/enc-pc1/enc-pc1 failure reported by Grawp-PIC i386 nightly tester
llvm-svn: 48623 
							
						 
						
							2008-03-20 23:27:18 +00:00  
				
					
						
							
							
								 
						
							
								80e43fa744 
								
							 
						 
						
							
							
								
								Restore isCFGOnly property of various analysis passes.  
							
							... 
							
							
							
							llvm-svn: 48579 
							
						 
						
							2008-03-20 02:25:21 +00:00  
				
					
						
							
							
								 
						
							
								718da668ab 
								
							 
						 
						
							
							
								
								PassInfo keep tracks whether a pass is an analysis pass or not.  
							
							... 
							
							
							
							llvm-svn: 48554 
							
						 
						
							2008-03-19 21:56:59 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								9c614117da 
								
							 
						 
						
							
							
								
								Make DomTree and PostDomTree thin wrappers around DomTreeBase, rather than inheriting from it.  
							
							... 
							
							
							
							llvm-svn: 43259 
							
						 
						
							2007-10-23 20:58:37 +00:00  
				
					
						
							
							
								 
						
							
								84490d44ec 
								
							 
						 
						
							
							
								
								Move splitBlock into DomTreeBase from DomTree.  
							
							... 
							
							
							
							llvm-svn: 43059 
							
						 
						
							2007-10-17 02:03:17 +00:00  
				
					
						
							
							
								 
						
							
								4187801f85 
								
							 
						 
						
							
							
								
								Template DominatorTreeBase by node type.  This is the next major step towards  
							
							... 
							
							
							
							having dominator information on MBB's.
llvm-svn: 43036 
							
						 
						
							2007-10-16 19:59:25 +00:00  
				
					
						
							
							
								 
						
							
								74529b7d5f 
								
							 
						 
						
							
							
								
								Begin the process of allowing DomTree on MBB's.  Step One: template DomTreeNode by making it a typedef of a templated DomTreeNodeBase.  
							
							... 
							
							
							
							llvm-svn: 42743 
							
						 
						
							2007-10-08 07:44:39 +00:00  
				
					
						
							
							
								 
						
							
								a69f987b66 
								
							 
						 
						
							
							
								
								Fix bug in updating dominance frontier after loop  
							
							... 
							
							
							
							unswitch when frontier includes basic blocks that 
are not inside loop.
llvm-svn: 42654 
							
						 
						
							2007-10-05 22:29:34 +00:00  
				
					
						
							
							
								 
						
							
								8313e75ea7 
								
							 
						 
						
							
							
								
								Completely merge the implementation details of DomTree and PostDomTree.  
							
							... 
							
							
							
							Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this,
llvm-svn: 42593 
							
						 
						
							2007-10-03 21:25:45 +00:00  
				
					
						
							
							
								 
						
							
								b60f254975 
								
							 
						 
						
							
							
								
								Factor some code from the DomTree and PostDomTree calculate methods up into  
							
							... 
							
							
							
							each one's runOnFunction method.
llvm-svn: 42563 
							
						 
						
							2007-10-03 03:20:17 +00:00  
				
					
						
							
							
								 
						
							
								ee73e0b8cb 
								
							 
						 
						
							
							
								
								Convert DFSPass into a templated friend function, in preparation for making it common to DomTree and PostDomTree.  
							
							... 
							
							
							
							llvm-svn: 42420 
							
						 
						
							2007-09-27 23:23:00 +00:00  
				
					
						
							
							
								 
						
							
								da853a400f 
								
							 
						 
						
							
							
								
								Move DFSPass back down into DominatorTree.  I need to figure out what the difference is between it  
							
							... 
							
							
							
							and the PostDomTree version first.
llvm-svn: 42250 
							
						 
						
							2007-09-23 22:16:38 +00:00  
				
					
						
							
							
								 
						
							
								84c357fc26 
								
							 
						 
						
							
							
								
								Factor the dominator tree calculation details out into DominatorCalculation.h.  This  
							
							... 
							
							
							
							change is not useful in and of itself, but it lays the groundwork for combining
the dominator and postdominator implementations.
Also, factor a few methods that are common to DominatorTree and PostDominatorTree
into DominatorTreeBase.  Again, this will make merging the two calculation methods
simpler in the future.
llvm-svn: 42248 
							
						 
						
							2007-09-23 21:31:44 +00:00  
				
					
						
							
							
								 
						
							
								367260c0df 
								
							 
						 
						
							
							
								
								Assert sooner. Fix wordings.  
							
							... 
							
							
							
							llvm-svn: 41075 
							
						 
						
							2007-08-14 16:53:52 +00:00  
				
					
						
							
							
								 
						
							
								c0fa0c52b3 
								
							 
						 
						
							
							
								
								Add methods to erase basic block entry.  
							
							... 
							
							
							
							llvm-svn: 41052 
							
						 
						
							2007-08-13 22:10:29 +00:00