summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/PostDominators.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.Chris Lattner2006-08-271-5/+5
| | | | llvm-svn: 29921
* For PR780:Reid Spencer2006-06-071-3/+2
| | | | | | | | | | 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
* Change from using a stub function to a stub variable for passing to theReid Spencer2006-06-011-2/+1
| | | | | | | IncludeFile hack to ensure linkage of analysis passes. This works around some -pedantic warnings about assigning an object to a function. llvm-svn: 28621
* Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominatorNate Begeman2006-03-111-142/+191
| | | | | | | | | | 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
* Initial implementation of the ET-Forest data structure for dominators andChris Lattner2006-01-081-0/+63
| | | | | | post-dominators. This code was written/adapted by Daniel Berlin! llvm-svn: 25144
* post-dom-frontiers requires proper post-dominanceChris Lattner2005-11-181-1/+1
| | | | llvm-svn: 24409
* Convert tabs to spacesMisha Brukman2005-04-221-5/+5
| | | | llvm-svn: 21439
* Remove trailing whitespaceMisha Brukman2005-04-211-8/+8
| | | | llvm-svn: 21416
* Add support for unreachableChris Lattner2004-10-161-2/+1
| | | | llvm-svn: 17056
* Do not use the same variable name for two different variables in theChris Lattner2004-10-141-3/+2
| | | | | | | same scope. This confused VC++ (and probably people too!). Patch by Morten Ofstad! llvm-svn: 16985
* Changes For Bug 352Reid Spencer2004-09-011-2/+2
| | | | | | | | 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
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-291-1/+1
| | | | llvm-svn: 15334
* Finegrainify namespacificationChris Lattner2003-12-071-3/+38
| | | | | | Move method out of generic dominators construction code llvm-svn: 10299
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Make use of "external" depth-first iterators to avoid revisiting nodesChris Lattner2003-10-131-3/+3
| | | | | | | 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
* Fixed spelling and grammar.Misha Brukman2003-09-111-1/+1
| | | | llvm-svn: 8478
* Renamed DominatorTree::Node::getNode() -> getBlock()Chris Lattner2003-09-111-1/+1
| | | | llvm-svn: 8469
* Rework post dominator information so that we do not have toChris Lattner2003-09-101-88/+97
| | | | | | | | | 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
* Remove using declarationsChris Lattner2003-09-101-2/+1
| | | | llvm-svn: 8442
* Handle post dominance correctly in the case where blocks do not have a path toChris Lattner2002-10-041-0/+12
| | | | | | the exit node. llvm-svn: 4038
* - Split Dominators.h into Dominators.h & PostDominators.hChris Lattner2002-08-211-1/+5
| | | | llvm-svn: 3432
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-211-4/+0
| | | | llvm-svn: 3417
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-081-1/+1
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3264
* Split dominance calculation and post dominance calculation stuffChris Lattner2002-08-021-267/+6
| | | | | | Dominance calculation goes to VMCore library to be used by Verifier. llvm-svn: 3210
* *** empty log message ***Chris Lattner2002-07-311-4/+5
| | | | llvm-svn: 3185
* Declare that these passes only depend on the CFG of the functionChris Lattner2002-07-301-8/+8
| | | | llvm-svn: 3157
* * Eliminate the Provided set. All Passes now finally just automaticallyChris Lattner2002-07-291-1/+0
| | | | | | provide themselves. llvm-svn: 3124
* * Standardize how analysis results/passes as printed with the print() virtualChris Lattner2002-07-271-8/+60
| | | | | | | | | | 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
* * Add support for different "PassType's"Chris Lattner2002-07-261-0/+20
| | | | | | | | | | | | | | | * 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
* *** empty log message ***Chris Lattner2002-07-261-105/+74
| | | | llvm-svn: 3105
* MEGAPATCH checkin.Chris Lattner2002-06-251-9/+9
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2779
* Add method to check to see if two _Instructions_ dominate each otherChris Lattner2002-05-131-0/+14
| | | | llvm-svn: 2616
* Move UnifyFunctionExitNodes to Utils library: final resting place this timeChris Lattner2002-05-071-1/+1
| | | | llvm-svn: 2531
* Updates to move some header files out of include/llvm/Transforms intoChris Lattner2002-05-071-1/+1
| | | | | | the Scalar and Utils subdirectories llvm-svn: 2523
* Mark analyses that only depend on the CFG of a functionChris Lattner2002-05-061-8/+8
| | | | llvm-svn: 2507
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-1/+0
| | | | llvm-svn: 2397
* Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classesChris Lattner2002-04-281-22/+22
| | | | | | to the global namespace llvm-svn: 2370
* Change the Dominator info and LoopInfo classes to keep track of ↵Chris Lattner2002-04-281-14/+14
| | | | | | | | BasicBlock's, not const BasicBlocks llvm-svn: 2337
* s/Method/FunctionChris Lattner2002-04-271-3/+3
| | | | llvm-svn: 2336
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-9/+8
| | | | | | | | | | | | | | | - 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
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-071-19/+20
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
* * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and intoChris Lattner2002-02-121-9/+7
| | | | | | | | | 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
* Method.h no longer includes BasicBlock.hChris Lattner2002-02-121-0/+1
| | | | | | | 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
* Remove generic routines to Support/SetOperations.hChris Lattner2002-02-051-18/+1
| | | | llvm-svn: 1715
* Provide the right AnalysisID for postdominatorsChris Lattner2002-01-311-3/+5
| | | | llvm-svn: 1616
* Convert analyses to new pass structureChris Lattner2002-01-311-32/+57
| | | | llvm-svn: 1603
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-0/+2
| | | | llvm-svn: 1503
* Create a new #include "Support/..." directory structure to move thingsChris Lattner2001-11-271-2/+2
| | | | | | | | from "llvm/Support/..." that are not llvm dependant. Move files and fix #includes llvm-svn: 1400
* Fix a bad assertion to be correct . The root basic block can be used by PHI ↵Chris Lattner2001-11-261-1/+3
| | | | | | nodes. llvm-svn: 1370
OpenPOWER on IntegriCloud