a6ff5bf9ba 
								
							 
						 
						
							
							
								
								Break DominatorTree from ETNode.  
							
							... 
							
							
							
							Remove unused PostETForest.
llvm-svn: 37551 
							
						 
						
							2007-06-12 00:54:38 +00:00  
				
					
						
							
							
								 
						
							
								af41e4a192 
								
							 
						 
						
							
							
								
								Maintain ETNode as part of DomTreeNode.  
							
							... 
							
							
							
							This adds redundancy for now.
llvm-svn: 37492 
							
						 
						
							2007-06-07 17:47:21 +00:00  
				
					
						
							
							
								 
						
							
								bdd1aaef10 
								
							 
						 
						
							
							
								
								s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/g  
							
							... 
							
							
							
							llvm-svn: 37407 
							
						 
						
							2007-06-04 00:32:22 +00:00  
				
					
						
							
							
								 
						
							
								0e8aa7b69a 
								
							 
						 
						
							
							
								
								s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/g  
							
							... 
							
							
							
							llvm-svn: 37403 
							
						 
						
							2007-06-03 06:26:14 +00:00  
				
					
						
							
							
								 
						
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
				
					
						
							
							
								 
						
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								Use 'static const char' instead of 'static const int'.  
							
							... 
							
							
							
							Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								883ff07672 
								
							 
						 
						
							
							
								
								Cache DT[*SI] lookup.  
							
							... 
							
							
							
							llvm-svn: 36239 
							
						 
						
							2007-04-18 01:19:55 +00:00  
				
					
						
							
							
								 
						
							
								5976db0103 
								
							 
						 
						
							
							
								
								Fix  
							
							... 
							
							
							
							http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070416/047971.html 
llvm-svn: 36236 
						
							2007-04-18 00:53:01 +00:00  
				
					
						
							
							
								 
						
							
								f064c92298 
								
							 
						 
						
							
							
								
								Tabs -> Spaces  
							
							... 
							
							
							
							llvm-svn: 36094 
							
						 
						
							2007-04-15 23:14:18 +00:00  
				
					
						
							
							
								 
						
							
								f35a1dbc7a 
								
							 
						 
						
							
							
								
								Remove ImmediateDominator analysis.  The same information can be obtained from DomTree.  A lot of code for  
							
							... 
							
							
							
							constructing ImmediateDominator is now folded into DomTree construction.
This is part of the ongoing work for PR217.
llvm-svn: 36063 
							
						 
						
							2007-04-15 08:47:27 +00:00  
				
					
						
							
							
								 
						
							
								8763ba1b88 
								
							 
						 
						
							
							
								
								Completely purge DomSet.  This is the (hopefully) final patch for PR1171.  
							
							... 
							
							
							
							llvm-svn: 35731 
							
						 
						
							2007-04-07 07:17:27 +00:00  
				
					
						
							
							
								 
						
							
								3216551491 
								
							 
						 
						
							
							
								
								Removed unneeded <iostream> #include.  
							
							... 
							
							
							
							llvm-svn: 31810 
							
						 
						
							2006-11-17 07:10:51 +00:00  
				
					
						
							
							
								 
						
							
								0a79537341 
								
							 
						 
						
							
							
								
								Fix DFS walk.  
							
							... 
							
							
							
							Fix http://llvm.org/bugs/show_bug.cgi?id=923 
llvm-svn: 30630 
							
						 
						
							2006-09-27 17:18:05 +00:00  
				
					
						
							
							
								 
						
							
								0142cd129e 
								
							 
						 
						
							
							
								
								Untabify.  
							
							... 
							
							
							
							llvm-svn: 30168 
							
						 
						
							2006-09-07 23:29:19 +00:00  
				
					
						
							
							
								 
						
							
								b8164e6131 
								
							 
						 
						
							
							
								
								Use iterative do-while loop instead of recursive DFSPass calls to  
							
							... 
							
							
							
							reduce amount of stack space used at runtime.
llvm-svn: 30167 
							
						 
						
							2006-09-07 23:22:37 +00:00  
				
					
						
							
							
								 
						
							
								3c9b2420df 
								
							 
						 
						
							
							
								
								Eliminate RegisterAnalysis.  RegisterPass now does all that is necessary.  
							
							... 
							
							
							
							llvm-svn: 29921 
							
						 
						
							2006-08-27 22:30:17 +00:00  
				
					
						
							
							
								 
						
							
								be535661cc 
								
							 
						 
						
							
							
								
								For PR780:  
							
							... 
							
							
							
							1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
   with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.
llvm-svn: 28715 
							
						 
						
							2006-06-07 22:00:26 +00:00  
				
					
						
							
							
								 
						
							
								5861659a1e 
								
							 
						 
						
							
							
								
								Change from using a stub function to a stub variable for passing to the  
							
							... 
							
							
							
							IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.
llvm-svn: 28621 
							
						 
						
							2006-06-01 07:02:51 +00:00  
				
					
						
							
							
								 
						
							
								d5811b965d 
								
							 
						 
						
							
							
								
								Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator  
							
							... 
							
							
							
							set construction, rather than intersecting various std::sets.  This reduces
the memory usage for the testcase in PR681 from 496 to 26MB of ram on my
darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a
2.5GHz G5.  This also enables future code sharing between Dom and PostDom
now that they share near-identical implementations.
llvm-svn: 26707 
							
						 
						
							2006-03-11 02:20:46 +00:00  
				
					
						
							
							
								 
						
							
								6c9cbdba1a 
								
							 
						 
						
							
							
								
								Initial implementation of the ET-Forest data structure for dominators and  
							
							... 
							
							
							
							post-dominators.  This code was written/adapted by Daniel Berlin!
llvm-svn: 25144 
							
						 
						
							2006-01-08 08:22:18 +00:00  
				
					
						
							
							
								 
						
							
								b14c41378d 
								
							 
						 
						
							
							
								
								post-dom-frontiers requires proper post-dominance  
							
							... 
							
							
							
							llvm-svn: 24409 
							
						 
						
							2005-11-18 07:28:26 +00:00  
				
					
						
							
							
								 
						
							
								774511633d 
								
							 
						 
						
							
							
								
								Convert tabs to spaces  
							
							... 
							
							
							
							llvm-svn: 21439 
							
						 
						
							2005-04-22 04:01:18 +00:00  
				
					
						
							
							
								 
						
							
								01808caded 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21416 
							
						 
						
							2005-04-21 21:13:18 +00:00  
				
					
						
							
							
								 
						
							
								98e541457b 
								
							 
						 
						
							
							
								
								Add support for unreachable  
							
							... 
							
							
							
							llvm-svn: 17056 
							
						 
						
							2004-10-16 18:21:33 +00:00  
				
					
						
							
							
								 
						
							
								52a126cb3e 
								
							 
						 
						
							
							
								
								Do not use the same variable name for two different variables in the  
							
							... 
							
							
							
							same scope.  This confused VC++ (and probably people too!).  Patch by
Morten Ofstad!
llvm-svn: 16985 
							
						 
						
							2004-10-14 14:59:16 +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  
				
					
						
							
							
								 
						
							
								63b38bd2ed 
								
							 
						 
						
							
							
								
								Fix #includes of i*.h => Instructions.h as per PR403.  
							
							... 
							
							
							
							llvm-svn: 15334 
							
						 
						
							2004-07-29 17:30:56 +00:00  
				
					
						
							
							
								 
						
							
								f9f7c2d302 
								
							 
						 
						
							
							
								
								Finegrainify namespacification  
							
							... 
							
							
							
							Move method out of generic dominators construction code
llvm-svn: 10299 
							
						 
						
							2003-12-07 00:35:42 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f5d946eced 
								
							 
						 
						
							
							
								
								Make use of "external" depth-first iterators to avoid revisiting nodes  
							
							... 
							
							
							
							multiple times.  This reduces the time to construct post-dominance sets a LOT.
For example, optimizing perlbmk goes from taking 12.9894s to 1.4074s.
llvm-svn: 9091 
							
						 
						
							2003-10-13 16:36:06 +00:00  
				
					
						
							
							
								 
						
							
								329983228f 
								
							 
						 
						
							
							
								
								Fixed spelling and grammar.  
							
							... 
							
							
							
							llvm-svn: 8478 
							
						 
						
							2003-09-11 18:14:24 +00:00  
				
					
						
							
							
								 
						
							
								bb9d03b9c0 
								
							 
						 
						
							
							
								
								Renamed DominatorTree::Node::getNode() -> getBlock()  
							
							... 
							
							
							
							llvm-svn: 8469 
							
						 
						
							2003-09-11 16:26:13 +00:00  
				
					
						
							
							
								 
						
							
								8157505fae 
								
							 
						 
						
							
							
								
								Rework post dominator information so that we do not have to  
							
							... 
							
							
							
							unify all exit nodes of a function to compute post-dominance information.
This does not work with functions that have both unwind and return nodes,
because we cannot unify these blocks.  The new implementation is better
anyway. :)
llvm-svn: 8460 
							
						 
						
							2003-09-10 20:37:08 +00:00  
				
					
						
							
							
								 
						
							
								74d86a9c93 
								
							 
						 
						
							
							
								
								Remove using declarations  
							
							... 
							
							
							
							llvm-svn: 8442 
							
						 
						
							2003-09-10 16:08:03 +00:00  
				
					
						
							
							
								 
						
							
								d7b3bb0fa4 
								
							 
						 
						
							
							
								
								Handle post dominance correctly in the case where blocks do not have a path to  
							
							... 
							
							
							
							the exit node.
llvm-svn: 4038 
							
						 
						
							2002-10-04 14:50:20 +00:00  
				
					
						
							
							
								 
						
							
								c86203ace3 
								
							 
						 
						
							
							
								
								- Split Dominators.h into Dominators.h & PostDominators.h  
							
							... 
							
							
							
							llvm-svn: 3432 
							
						 
						
							2002-08-21 23:43:50 +00:00  
				
					
						
							
							
								 
						
							
								1a386b6a73 
								
							 
						 
						
							
							
								
								- Do not expose ::ID from any of the analyses anymore.  
							
							... 
							
							
							
							llvm-svn: 3417 
							
						 
						
							2002-08-21 17:09:49 +00:00  
				
					
						
							
							
								 
						
							
								40eb9dafed 
								
							 
						 
						
							
							
								
								- Cleaned up the interface to AnalysisUsage to take analysis class names  
							
							... 
							
							
							
							instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument
llvm-svn: 3264 
							
						 
						
							2002-08-08 19:01:28 +00:00  
				
					
						
							
							
								 
						
							
								d43023a85d 
								
							 
						 
						
							
							
								
								Split dominance calculation and post dominance calculation stuff  
							
							... 
							
							
							
							Dominance calculation goes to VMCore library to be used by Verifier.
llvm-svn: 3210 
							
						 
						
							2002-08-02 16:43:03 +00:00  
				
					
						
							
							
								 
						
							
								be4826e627 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3185 
							
						 
						
							2002-07-31 19:32:01 +00:00  
				
					
						
							
							
								 
						
							
								31aa7e72f2 
								
							 
						 
						
							
							
								
								Declare that these passes only depend on the CFG of the function  
							
							... 
							
							
							
							llvm-svn: 3157 
							
						 
						
							2002-07-30 16:27:52 +00:00  
				
					
						
							
							
								 
						
							
								f356bcc824 
								
							 
						 
						
							
							
								
								* Eliminate the Provided set.  All Passes now finally just automatically  
							
							... 
							
							
							
							provide themselves.
llvm-svn: 3124 
							
						 
						
							2002-07-29 21:03:33 +00:00  
				
					
						
							
							
								 
						
							
								2675007573 
								
							 
						 
						
							
							
								
								* Standardize how analysis results/passes as printed with the print() virtual  
							
							... 
							
							
							
							methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.
llvm-svn: 3116 
							
						 
						
							2002-07-27 01:12:17 +00:00  
				
					
						
							
							
								 
						
							
								a2c0985980 
								
							 
						 
						
							
							
								
								* Add support for different "PassType's"  
							
							... 
							
							
							
							* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3112 
							
						 
						
							2002-07-26 21:12:44 +00:00  
				
					
						
							
							
								 
						
							
								64eea749de 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3105 
							
						 
						
							2002-07-26 18:40:14 +00:00  
				
					
						
							
							
								 
						
							
								113f4f4609 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779 
							
						 
						
							2002-06-25 16:13:24 +00:00  
				
					
						
							
							
								 
						
							
								da6743e60c 
								
							 
						 
						
							
							
								
								Add method to check to see if two _Instructions_ dominate each other  
							
							... 
							
							
							
							llvm-svn: 2616 
							
						 
						
							2002-05-13 22:03:16 +00:00  
				
					
						
							
							
								 
						
							
								15435fd550 
								
							 
						 
						
							
							
								
								Move UnifyFunctionExitNodes to Utils library: final resting place this time  
							
							... 
							
							
							
							llvm-svn: 2531 
							
						 
						
							2002-05-07 19:18:48 +00:00  
				
					
						
							
							
								 
						
							
								7608a46cbe 
								
							 
						 
						
							
							
								
								Updates to move some header files out of include/llvm/Transforms into  
							
							... 
							
							
							
							the Scalar and Utils subdirectories
llvm-svn: 2523 
							
						 
						
							2002-05-07 18:36:35 +00:00  
				
					
						
							
							
								 
						
							
								86ed92af6d 
								
							 
						 
						
							
							
								
								Mark analyses that only depend on the CFG of a function  
							
							... 
							
							
							
							llvm-svn: 2507 
							
						 
						
							2002-05-06 19:32:07 +00:00  
				
					
						
							
							
								 
						
							
								d5a847057b 
								
							 
						 
						
							
							
								
								Eliminate duplicate or unneccesary #include's  
							
							... 
							
							
							
							llvm-svn: 2397 
							
						 
						
							2002-04-29 17:42:12 +00:00  
				
					
						
							
							
								 
						
							
								78dd56fe62 
								
							 
						 
						
							
							
								
								Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes  
							
							... 
							
							
							
							to the global namespace
llvm-svn: 2370 
							
						 
						
							2002-04-28 16:21:30 +00:00  
				
					
						
							
							
								 
						
							
								99b6f5cac4 
								
							 
						 
						
							
							
								
								Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not  
							
							... 
							
							
							
							const BasicBlocks
llvm-svn: 2337 
							
						 
						
							2002-04-28 00:15:57 +00:00  
				
					
						
							
							
								 
						
							
								f998685cd9 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2336 
							
						 
						
							2002-04-27 07:27:19 +00:00  
				
					
						
							
							
								 
						
							
								c8e665431b 
								
							 
						 
						
							
							
								
								* Rename MethodPass class to FunctionPass  
							
							... 
							
							
							
							- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333 
							
						 
						
							2002-04-27 06:56:12 +00:00  
				
					
						
							
							
								 
						
							
								62b7fd136e 
								
							 
						 
						
							
							
								
								Change references to the Method class to be references to the Function  
							
							... 
							
							
							
							class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144 
							
						 
						
							2002-04-07 20:49:59 +00:00  
				
					
						
							
							
								 
						
							
								83d485b310 
								
							 
						 
						
							
							
								
								* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into  
							
							... 
							
							
							
							llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
  InstrTypes.h anymore
llvm-svn: 1750 
							
						 
						
							2002-02-12 22:39:50 +00:00  
				
					
						
							
							
								 
						
							
								60a6591d83 
								
							 
						 
						
							
							
								
								Method.h no longer includes BasicBlock.h  
							
							... 
							
							
							
							Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746 
							
						 
						
							2002-02-12 21:07:25 +00:00  
				
					
						
							
							
								 
						
							
								a2b661f764 
								
							 
						 
						
							
							
								
								Remove generic routines to Support/SetOperations.h  
							
							... 
							
							
							
							llvm-svn: 1715 
							
						 
						
							2002-02-05 03:35:31 +00:00  
				
					
						
							
							
								 
						
							
								a5e103a2ae 
								
							 
						 
						
							
							
								
								Provide the right AnalysisID for postdominators  
							
							... 
							
							
							
							llvm-svn: 1616 
							
						 
						
							2002-01-31 18:29:24 +00:00  
				
					
						
							
							
								 
						
							
								ccf571a408 
								
							 
						 
						
							
							
								
								Convert analyses to new pass structure  
							
							... 
							
							
							
							llvm-svn: 1603 
							
						 
						
							2002-01-31 00:42:27 +00:00  
				
					
						
							
							
								 
						
							
								7f74a56e24 
								
							 
						 
						
							
							
								
								Changes to build successfully with GCC 3.02  
							
							... 
							
							
							
							llvm-svn: 1503 
							
						 
						
							2002-01-20 22:54:45 +00:00  
				
					
						
							
							
								 
						
							
								5de2204fe8 
								
							 
						 
						
							
							
								
								Create a new #include "Support/..." directory structure to move things  
							
							... 
							
							
							
							from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400 
							
						 
						
							2001-11-27 00:03:19 +00:00  
				
					
						
							
							
								 
						
							
								a88403bf31 
								
							 
						 
						
							
							
								
								Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.  
							
							... 
							
							
							
							llvm-svn: 1370 
							
						 
						
							2001-11-26 18:52:02 +00:00  
				
					
						
							
							
								 
						
							
								ba1c1f2fb6 
								
							 
						 
						
							
							
								
								Pull predecessor and successor iterators out of the CFG*.h files, and plop them into  
							
							... 
							
							
							
							the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
llvm-svn: 691 
							
						 
						
							2001-10-01 13:19:53 +00:00  
				
					
						
							
							
								 
						
							
								bb09a10929 
								
							 
						 
						
							
							
								
								Pull iterators out of CFG.h and CFGdecls and put them in Support directory  
							
							... 
							
							
							
							llvm-svn: 664 
							
						 
						
							2001-09-28 22:56:31 +00:00  
				
					
						
							
							
								 
						
							
								439465583a 
								
							 
						 
						
							
							
								
								Make sure noone branches to the entry node of the method  
							
							... 
							
							
							
							llvm-svn: 369 
							
						 
						
							2001-08-24 14:56:34 +00:00  
				
					
						
							
							
								 
						
							
								a0484c8eeb 
								
							 
						 
						
							
							
								
								Handle case where there is no exit node from a flowgraph  
							
							... 
							
							
							
							llvm-svn: 365 
							
						 
						
							2001-08-23 17:07:19 +00:00  
				
					
						
							
							
								 
						
							
								e2472bbf6c 
								
							 
						 
						
							
							
								
								Moved inline/llvm/Tools/* to include/llvm/Support/*  
							
							... 
							
							
							
							llvm-svn: 279 
							
						 
						
							2001-07-23 17:46:59 +00:00  
				
					
						
							
							
								 
						
							
								1547114cbf 
								
							 
						 
						
							
							
								
								Fixed post dominator frontiers!  Yaay!  
							
							... 
							
							
							
							llvm-svn: 157 
							
						 
						
							2001-07-08 05:54:09 +00:00  
				
					
						
							
							
								 
						
							
								c385bebc89 
								
							 
						 
						
							
							
								
								Implement support for postdominators, except in dom frontiers  
							
							... 
							
							
							
							llvm-svn: 142 
							
						 
						
							2001-07-06 16:58:22 +00:00  
				
					
						
							
							
								 
						
							
								081aabc330 
								
							 
						 
						
							
							
								
								Checkin of new dominator calculation routines.  These will be improved in  
							
							... 
							
							
							
							the future to do post dominators and stuff
llvm-svn: 124 
							
						 
						
							2001-07-02 05:46:38 +00:00