Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								81ea3bb55c 
								
							 
						 
						
							
							
								
								Move dominator info printer into tool/opt/GraphPrinters.cpp  
							
							 
							
							... 
							
							
							
							llvm-svn: 52907 
							
						 
						
							2008-06-30 17:32:58 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								abc6e6ab9f 
								
							 
						 
						
							
							
								
								Add dominator info printer pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52829 
							
						 
						
							2008-06-27 16:43:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a9fcf009a3 
								
							 
						 
						
							
							
								
								Dominance Frontier is cfg only pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51075 
							
						 
						
							2008-05-13 22:43:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								00cab5b9a6 
								
							 
						 
						
							
							
								
								don't print dominators every time it is computed with -debug.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50032 
							
						 
						
							2008-04-21 06:19:02 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								57236b58f7 
								
							 
						 
						
							
							
								
								Major repairs to the post-dominators implementation.  Patch from Florian Brandner!  
							
							 
							
							... 
							
							
							
							llvm-svn: 49768 
							
						 
						
							2008-04-16 04:21:16 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								80e43fa744 
								
							 
						 
						
							
							
								
								Restore isCFGOnly property of various analysis passes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48579 
							
						 
						
							2008-03-20 02:25:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								718da668ab 
								
							 
						 
						
							
							
								
								PassInfo keep tracks whether a pass is an analysis pass or not.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48554 
							
						 
						
							2008-03-19 21:56:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								84490d44ec 
								
							 
						 
						
							
							
								
								Move splitBlock into DomTreeBase from DomTree.  
							
							 
							
							... 
							
							
							
							llvm-svn: 43059 
							
						 
						
							2007-10-17 02:03:17 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								367260c0df 
								
							 
						 
						
							
							
								
								Assert sooner. Fix wordings.  
							
							 
							
							... 
							
							
							
							llvm-svn: 41075 
							
						 
						
							2007-08-14 16:53:52 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								c0fa0c52b3 
								
							 
						 
						
							
							
								
								Add methods to erase basic block entry.  
							
							 
							
							... 
							
							
							
							llvm-svn: 41052 
							
						 
						
							2007-08-13 22:10:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								415750e132 
								
							 
						 
						
							
							
								
								Speed up updateDFSNumbers with two observations:  
							
							 
							
							... 
							
							
							
							1. domtree is a tree, not a graph.  There is no need to avoid revisiting nodes with a set.
2. the worklist can contain the child iterator pointers so we don't get N^2 rescanning of children.
This speeds up updateDFSNumbers significantly, making it basically free.  On the testcase in PR1432,
this speeds up loopsimplify by another 3x, dropping it from the 12th most expensive pass to the to
the 30th. :)  It used to be #1 .
llvm-svn: 40923 
							
						 
						
							2007-08-08 06:24:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c63d4c2e4e 
								
							 
						 
						
							
							
								
								reimplement dfs number computation to be significantly faster.  This speeds up  
							
							 
							
							... 
							
							
							
							natural loop canonicalization (which does many cfg xforms) by 4.3x, for 
example.  This also fixes a bug in postdom dfnumber computation.
llvm-svn: 40920 
							
						 
						
							2007-08-08 05:51:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								67f1c3335c 
								
							 
						 
						
							
							
								
								1. Random tidiness cleanups  
							
							 
							
							... 
							
							
							
							2. Make domtree printing print dfin/dfout #'s
3. Fix the Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll failure from last night (in DominanceFrontier::splitBlock).
w.r.t. #3 , my patches last night happened to expose the bug, but this 
has been broken since Owen's r35839 patch to LoopSimplify.  The code
was subsequently moved over from LoopSimplify into Dominators, carrying
the latent bug.  Fun stuff.
llvm-svn: 40858 
							
						 
						
							2007-08-06 06:19:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d2eb0c9653 
								
							 
						 
						
							
							
								
								Fix an iterator invalidation bug I induced.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40830 
							
						 
						
							2007-08-05 00:24:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0e8f85f87e 
								
							 
						 
						
							
							
								
								Switch some std::sets to SmallPtrSet.  This speeds up  
							
							 
							
							... 
							
							
							
							domtree by 10% and postdomtree by 17%
llvm-svn: 40829 
							
						 
						
							2007-08-05 00:15:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5f5585c432 
								
							 
						 
						
							
							
								
								Switch DomTreeNode::assignDFSNumber from using a std::set to using  
							
							 
							
							... 
							
							
							
							a smallptrset.  This speeds up domtree by about 15% and postdomtree by 20%.
llvm-svn: 40828 
							
						 
						
							2007-08-05 00:10:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								77e05fe20d 
								
							 
						 
						
							
							
								
								Switch the internal "Info" map from an std::map to a DenseMap.  This  
							
							 
							
							... 
							
							
							
							speeds up idom by about 45% and postidom by about 33%.
Some extra precautions must be taken not to invalidate densemap iterators.
llvm-svn: 40827 
							
						 
						
							2007-08-05 00:02:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bd0fe01daf 
								
							 
						 
						
							
							
								
								switch the DomTreeNodes and IDoms maps in idom/postidom to a  
							
							 
							
							... 
							
							
							
							DenseMap instead of an std::map.  This speeds up postdomtree
by about 25% and domtree by about 23%.  It also speeds up clients,
for example, domfrontier by 11%, mem2reg by 4% and ADCE by 6%.
llvm-svn: 40826 
							
						 
						
							2007-08-04 23:48:07 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a882328e61 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							 
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589, again
llvm-svn: 40737 
							
						 
						
							2007-08-02 15:25:57 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								34890b2f27 
								
							 
						 
						
							
							
								
								Undo previous check-in.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40698 
							
						 
						
							2007-08-01 23:24:50 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								561b0c29a3 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							 
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589.
llvm-svn: 40695 
							
						 
						
							2007-08-01 22:23:50 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								381a2a26e9 
								
							 
						 
						
							
							
								
								Fix edge cases in handling basic block split.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40564 
							
						 
						
							2007-07-27 19:13:43 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								c445982764 
								
							 
						 
						
							
							
								
								Remove ETForest.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37765 
							
						 
						
							2007-06-27 20:53:52 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								d5258a23a5 
								
							 
						 
						
							
							
								
								Move code to update dominator information after basic block is split  
							
							 
							
							... 
							
							
							
							from LoopSimplify.cpp to Dominator.cpp
llvm-svn: 37689 
							
						 
						
							2007-06-21 17:23:45 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								149a7616dc 
								
							 
						 
						
							
							
								
								isReachableFromEntry() is not suitable for post dominator.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37562 
							
						 
						
							2007-06-12 17:50:25 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								47419ee142 
								
							 
						 
						
							
							
								
								Remove redundant check.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37561 
							
						 
						
							2007-06-12 17:35:20 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								dcf0c03ff7 
								
							 
						 
						
							
							
								
								Check A dominates B and vise versa first while searching for nearest  
							
							 
							
							... 
							
							
							
							common dominator.
llvm-svn: 37559 
							
						 
						
							2007-06-12 17:17:57 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a6ff5bf9ba 
								
							 
						 
						
							
							
								
								Break DominatorTree from ETNode.  
							
							 
							
							... 
							
							
							
							Remove unused PostETForest.
llvm-svn: 37551 
							
						 
						
							2007-06-12 00:54:38 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								d324360352 
								
							 
						 
						
							
							
								
								Use SmallPtrSet instaed of std::set  
							
							 
							
							... 
							
							
							
							llvm-svn: 37548 
							
						 
						
							2007-06-12 00:40:51 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9576fac800 
								
							 
						 
						
							
							
								
								Check immediate dominators first while searching for nearset common dominator.  
							
							 
							
							... 
							
							
							
							Fix 80 col violations.
llvm-svn: 37547 
							
						 
						
							2007-06-12 00:35:38 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								88ea2dbc68 
								
							 
						 
						
							
							
								
								Maintain DFS number in DomTreeNode itself.  
							
							 
							
							... 
							
							
							
							This means now ETNodes are not useful anymore.
llvm-svn: 37546 
							
						 
						
							2007-06-12 00:14:41 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								78b9c68164 
								
							 
						 
						
							
							
								
								Add and use DominatorTreeBase::findNearestCommonDominator().  
							
							 
							
							... 
							
							
							
							llvm-svn: 37545 
							
						 
						
							2007-06-11 23:31:22 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								becc466451 
								
							 
						 
						
							
							
								
								Update LoopSimplify to require and preserve DominatorTree only.  
							
							 
							
							... 
							
							
							
							Now LoopSimplify does not require nor preserve ETForest.
llvm-svn: 37512 
							
						 
						
							2007-06-08 01:50:32 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								46d92cae96 
								
							 
						 
						
							
							
								
								Add instruction level dominates(A,B) interface.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37504 
							
						 
						
							2007-06-07 23:52:40 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								af41e4a192 
								
							 
						 
						
							
							
								
								Maintain ETNode as part of DomTreeNode.  
							
							 
							
							... 
							
							
							
							This adds redundancy for now.
llvm-svn: 37492 
							
						 
						
							2007-06-07 17:47:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								def2d9790a 
								
							 
						 
						
							
							
								
								Add new dominator tree node into dominator tree node map.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37475 
							
						 
						
							2007-06-06 20:08:11 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								4a7c2830d4 
								
							 
						 
						
							
							
								
								Add FIXMEs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37417 
							
						 
						
							2007-06-04 17:38:00 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								bdd1aaef10 
								
							 
						 
						
							
							
								
								s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/g  
							
							 
							
							... 
							
							
							
							llvm-svn: 37407 
							
						 
						
							2007-06-04 00:32:22 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								0e8aa7b69a 
								
							 
						 
						
							
							
								
								s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/g  
							
							 
							
							... 
							
							
							
							llvm-svn: 37403 
							
						 
						
							2007-06-03 06:26:14 +00:00