[PATCH] D28073: Preserve domtree and loop-simplify for runtime unrolling.
Michael Zolotukhin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 6 15:19:24 PST 2017
mzolotukhin added inline comments.
================
Comment at: lib/Transforms/Utils/LoopUnroll.cpp:700-701
if (DT) {
- if (!OuterL && !CompletelyUnroll)
- OuterL = L;
if (OuterL) {
----------------
efriedma wrote:
> mzolotukhin wrote:
> > efriedma wrote:
> > > mzolotukhin wrote:
> > > > Why can we remove this?
> > > There are three possibilities for unrolling: we could be completely unrolling a loop, we could be runtime unrolling a loop, or we could be peeling a loop. If we're completely unrolling, these lines are a no-op. If we're runtime unrolling, we now correctly preserve LoopSimplify for L (and we don't break it for any loop outside of L). If we're peeling, we explicitly recreate LoopSimplify earlier.
> > But isn't it also used for LCSSA? Maybe I'm missing something, but it's still not obvious to me that we can remove it.
> !CompletelyUnroll implies !NeedToFixLCSSA.
Ah, right!
Repository:
rL LLVM
https://reviews.llvm.org/D28073
More information about the llvm-commits
mailing list