| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 13048
|
|
|
|
|
|
|
| |
structure to being dynamically computed on demand. This makes updating
loop information MUCH easier.
llvm-svn: 13045
|
|
|
|
|
|
| |
LoopSimplify was not updating dominator frontiers correctly in some cases.
llvm-svn: 12890
|
|
|
|
| |
llvm-svn: 12888
|
|
|
|
|
|
|
| |
This is fairly straight-forward, but was a real nightmare to get just
perfect. aarg. :)
llvm-svn: 12884
|
|
|
|
| |
llvm-svn: 12595
|
|
|
|
|
|
| |
Testcase: LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
llvm-svn: 12592
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20040308/013095.html
Basically, this patch only updated the immediate dominatees of the header node
to tell them that the preheader also dominated them. In practice, ALL
dominatees of the header node are also dominated by the preheader.
This fixes: LoopSimplify/2004-03-15-IncorrectDomUpdate.
and PR293
llvm-svn: 12434
|
|
|
|
|
|
|
|
| |
loop information won't see it, and we could have unreachable blocks pointing to
the non-header node of blocks in a natural loop. This isn't tidy, so have the
loopsimplify pass clean it up.
llvm-svn: 12380
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On the testcase from GCC PR12440, which has a LOT of loops (1392 of which require
preheaders to be inserted), this speeds up the loopsimplify pass from 1.931s to
0.1875s. The loop in question goes from 1.65s -> 0.0097s, which isn't bad. All of
these times are a debug build.
This adds a dependency on DominatorTree analysis that was not there before, but
we always had dominatortree available anyway, because LICM requires both loop
simplify and DT, so this doesn't add any extra analysis in practice.
llvm-svn: 12362
|
|
|
|
|
|
| |
keeps finding more code motion opportunities now that the dominators are correct!
llvm-svn: 11142
|
|
|
|
| |
llvm-svn: 11140
|
|
|
|
|
|
|
|
| |
The problem is that the dominator update code didn't "realize" that it's
possible for the newly inserted basic block to dominate anything. Because
it IS possible, stuff was getting updated wrong.
llvm-svn: 11137
|
|
|
|
| |
llvm-svn: 11114
|
|
|
|
|
|
|
| |
getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
llvm-svn: 10714
|
|
|
|
| |
llvm-svn: 10531
|
|
|
|
|
|
| |
Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll
llvm-svn: 10373
|
|
|
|
| |
llvm-svn: 10348
|
|
|
|
| |
llvm-svn: 10127
|
|
|
|
| |
llvm-svn: 10111
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
|
|
|
|
| |
have a SINGLE backedge. This is useful to, for example, the -indvars pass.
This implements testcase LoopSimplify/single-backedge.ll and closes PR#34
llvm-svn: 9065
|
|
|
|
| |
llvm-svn: 9061
|
|
|
|
| |
llvm-svn: 9059
|
|
|
|
| |
llvm-svn: 9058
|
|
|
|
|
|
| |
allows GCCAS to only run it once.
llvm-svn: 9056
|
|
|
|
| |
llvm-svn: 9027
|
|
|
|
| |
llvm-svn: 8469
|
|
|
|
| |
llvm-svn: 8425
|
|
|
|
| |
llvm-svn: 7967
|
|
|
|
| |
llvm-svn: 7944
|
|
|
|
| |
llvm-svn: 6153
|
|
|
|
| |
llvm-svn: 5872
|
|
|
|
| |
llvm-svn: 5669
|
|
|
|
| |
llvm-svn: 5667
|
|
|
|
| |
llvm-svn: 5664
|
|
|
|
|
|
|
| |
Ironically the exit block modification code wasn't updating the exit block
information itself. Fix this.
llvm-svn: 5659
|
|
|
|
|
|
|
|
| |
* Remove bogus assertion: there may be a single outside predecessor and
still need a new loop-preheader if the predecessor has multiple
successors. See bug: LICM/2003-02-27-PreheaderProblem.ll
llvm-svn: 5655
|
|
|
|
|
|
|
|
|
| |
- Now we perform loop exit-block splitting to ensure exit blocks are
always dominated by the loop header.
- We now preserve dominance frontier information
- This fixes bug: LICM/2003-02-26-LoopExitNotDominated.ll
llvm-svn: 5652
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
llvm-svn: 4002
|
|
|
|
| |
llvm-svn: 3975
|
|
|
|
| |
llvm-svn: 3946
|
|
llvm-svn: 3942
|