aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/LoopInfo.cpp
AgeCommit message (Collapse)Author
2006-08-12Make Loop::getExitBlocks significantly faster for large loops. Instead ofChris Lattner
pounding on Loop::contains (which is O(n) in the size of the loop), use a sorted vector, which is O(log(N)) for each query. This speeds up Duraid's horrible testcase from ~72s to ~31s in a debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-02Speed up Loop::isLCSSAForm by using a binary search and single-entry cache.Chris Lattner
This reduces LCSSA pass time from 1.5s to 0.96s when run on eon in release+asserts mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-13Update isLCSSAForm to handle PHI nodes specially for live-out detection. ThisOwen Anderson
is the same as the recent patch to LCSSA.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28773 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-11Re-commit the safe parts of my 6/9 patch. Still working on fixing the ↵Owen Anderson
unsafe parts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28748 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-11Back out Owen's 6/9 changes. They broke ↵Evan Cheng
MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28747 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-09Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass ↵Owen Anderson
assert on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28738 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-07For PR780:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28715 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01Change from using a stub function to a stub variable for passing to theReid Spencer
IncludeFile hack to ensure linkage of analysis passes. This works around some -pedantic warnings about assigning an object to a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28621 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-14add an assertChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26178 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14Change ET-Forest to automatically recalculate its DFSnum's if too many slowChris Lattner
queries are made. Patch by Daniel Berlin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25323 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-11Switch loopinfo to using ETForest instead of DominatorSet to compute itself.Chris Lattner
Patch by Daniel Berlin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25199 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-12Add a new getLoopLatch() method.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23315 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-05Remove extra blank lineMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21706 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-22Convert tabs to spacesMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21Remove trailing whitespaceMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21416 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-07For PR387:\Reid Spencer
Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18589 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15Convert code to compile with vc7.1.Reid Spencer
Patch contributed by Paolo Invernizzi. Thanks Paolo! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16368 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03Fixes to make LLVM compile with vc7.1.Alkis Evlogimenos
Patch contributed by Paolo Invernizzi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16152 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Changes For Bug 352Reid Spencer
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/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04Add #include <iostream> since Value.h does not #include it any more.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08Don't grab the condition of unconditional branches!Chris Lattner
This fixes PR363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14076 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-19Remove code to update loop depthsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18Add new methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13050 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18Fix computation of exit blocksChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13047 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18Change the ExitBlocks list from being explicitly contained in the LoopChris Lattner
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
2004-04-18Implement methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13036 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18Add a new method, add a check missing that caused a segfault if a loop didn'tChris Lattner
have a canonical indvar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13032 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15add some helpful methods. Rearrange #includes to proper orderChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12960 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12Add some methods that are useful for updating loop information.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12871 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-30Order #includes alphabetically, per style guide.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11015 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-08Improve encapsulation in the Loop and LoopInfo classes by eliminating theChris Lattner
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
2003-11-11Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-22Do not add unreachable code to a natural loop!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9377 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20Added LLVM project notice to the top of every C++ source file.John Criswell
Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-13Regularize header file commentsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-12Make getNumBackEdges more efficientChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9063 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-24Remove explicit use of BasicBlock::succ_iteratorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8706 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17Fix the bug that broke the nightly tester in McCat/18-imp last night. :(Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7925 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-16Fix bug: LoopPreheaders/2003-08-15-PreheadersFail.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7915 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-15Fix bug: Analysis/LoopInfo/2003-05-15-NestingProblem.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6230 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-26Fix bug: LoopPreheaders/2003-04-25-AssertFail.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5959 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28Add dump method for LoopsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5671 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27Simplify a bit by using a new member functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5662 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27Change behavior of changeExitBlock function to replace all instances of exit ↵Chris Lattner
block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5661 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27Fix bug: LICM/2003-02-27-PreheaderProblem.llChris Lattner
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
2003-02-27 - LoopInfo now calculates and tracks loop exit blocksChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5650 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-22Dramatically simplify building of natural loops and fix a bug where the BBMapChris Lattner
was not correctly computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5606 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-20Fix the requisite bug that I introducedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5605 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-20Fix 80 character formattingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5604 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-20Fix bug: 2003-02-19-LoopInfoNestingBug.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5603 91177308-0d34-0410-b5e6-96231b3b80d8