aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/LoopInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove code to update loop depthsChris Lattner2004-04-191-10/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13058 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new methodChris Lattner2004-04-181-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13050 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix computation of exit blocksChris Lattner2004-04-181-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13047 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the ExitBlocks list from being explicitly contained in the LoopChris Lattner2004-04-181-43/+12
| | | | | | | | structure to being dynamically computed on demand. This makes updating loop information MUCH easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13045 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement methodChris Lattner2004-04-181-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13036 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new method, add a check missing that caused a segfault if a loop didn'tChris Lattner2004-04-181-0/+14
| | | | | | | have a canonical indvar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13032 91177308-0d34-0410-b5e6-96231b3b80d8
* add some helpful methods. Rearrange #includes to proper orderChris Lattner2004-04-151-6/+89
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12960 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some methods that are useful for updating loop information.Chris Lattner2004-04-121-4/+86
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12871 91177308-0d34-0410-b5e6-96231b3b80d8
* Order #includes alphabetically, per style guide.Misha Brukman2004-01-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11015 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve encapsulation in the Loop and LoopInfo classes by eliminating theChris Lattner2004-01-081-2/+2
| | | | | | | | getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714 91177308-0d34-0410-b5e6-96231b3b80d8
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not add unreachable code to a natural loop!Chris Lattner2003-10-221-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9377 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Regularize header file commentsChris Lattner2003-10-131-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getNumBackEdges more efficientChris Lattner2003-10-121-7/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9063 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove explicit use of BasicBlock::succ_iteratorChris Lattner2003-09-241-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8706 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the bug that broke the nightly tester in McCat/18-imp last night. :(Chris Lattner2003-08-171-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7925 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: LoopPreheaders/2003-08-15-PreheadersFail.llChris Lattner2003-08-161-4/+81
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7915 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: Analysis/LoopInfo/2003-05-15-NestingProblem.llChris Lattner2003-05-151-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6230 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: LoopPreheaders/2003-04-25-AssertFail.llChris Lattner2003-04-261-3/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5959 91177308-0d34-0410-b5e6-96231b3b80d8
* Add dump method for LoopsChris Lattner2003-02-281-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5671 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify a bit by using a new member functionChris Lattner2003-02-271-6/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5662 91177308-0d34-0410-b5e6-96231b3b80d8
* Change behavior of changeExitBlock function to replace all instances of exit ↵Chris Lattner2003-02-271-2/+8
| | | | | | block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5661 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: LICM/2003-02-27-PreheaderProblem.llChris Lattner2003-02-271-0/+7
| | | | | | | | | There may be a single outside predecessor and still need a new loop-preheader if the predecessor has multiple successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5656 91177308-0d34-0410-b5e6-96231b3b80d8
* - LoopInfo now calculates and tracks loop exit blocksChris Lattner2003-02-271-11/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5650 91177308-0d34-0410-b5e6-96231b3b80d8
* Dramatically simplify building of natural loops and fix a bug where the BBMapChris Lattner2003-02-221-37/+23
| | | | | | | was not correctly computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5606 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the requisite bug that I introducedChris Lattner2003-02-201-11/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5605 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix 80 character formattingChris Lattner2003-02-201-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5604 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: 2003-02-19-LoopInfoNestingBug.llChris Lattner2003-02-201-15/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5603 91177308-0d34-0410-b5e6-96231b3b80d8
* Added helper functions in LoopInfo: isLoopExit and numBackEdges.Misha Brukman2002-10-111-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4112 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor tweakChris Lattner2002-09-291-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3985 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix printing of loop informationChris Lattner2002-09-291-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3977 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix printing of loop informationChris Lattner2002-09-261-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3941 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.Chris Lattner2002-09-261-1/+51
| | | | | | | | These allow extra information to be easily gathered, and loopinfo to be updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3936 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed so it gets linked properlyAnand Shukla2002-08-261-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3508 91177308-0d34-0410-b5e6-96231b3b80d8
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-211-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3417 91177308-0d34-0410-b5e6-96231b3b80d8
* - 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3264 91177308-0d34-0410-b5e6-96231b3b80d8
* Declare that these passes only depend on the CFG of the functionChris Lattner2002-07-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3157 91177308-0d34-0410-b5e6-96231b3b80d8
* * Eliminate the Provided set. All Passes now finally just automaticallyChris Lattner2002-07-291-1/+0
| | | | | | | provide themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3124 91177308-0d34-0410-b5e6-96231b3b80d8
* * Standardize how analysis results/passes as printed with the print() virtualChris Lattner2002-07-271-8/+27
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add support for different "PassType's"Chris Lattner2002-07-261-0/+2
| | | | | | | | | | | | | | | | * 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3112 91177308-0d34-0410-b5e6-96231b3b80d8
* MEGAPATCH checkin.Chris Lattner2002-06-251-1/+1
| | | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
* *** empty log message ***Chris Lattner2002-06-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2755 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark analyses that only depend on the CFG of a functionChris Lattner2002-05-061-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2507 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classesChris Lattner2002-04-281-10/+9
| | | | | | | to the global namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the Dominator info and LoopInfo classes to keep track of ↵Chris Lattner2002-04-281-9/+9
| | | | | | | | | BasicBlock's, not const BasicBlocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2337 91177308-0d34-0410-b5e6-96231b3b80d8
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-6/+5
| | | | | | | | | | | | | | | | - 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't leak all of the Loop objects created...Chris Lattner2002-04-091-2/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2196 91177308-0d34-0410-b5e6-96231b3b80d8
* s/Method/FunctionChris Lattner2002-04-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
* * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and intoChris Lattner2002-02-121-3/+2
| | | | | | | | | | 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8