[PATCH] D28073: Preserve domtree and loop-simplify for runtime unrolling.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 6 15:12:42 PST 2017


efriedma added inline comments.


================
Comment at: lib/Transforms/Utils/LoopUnroll.cpp:700-701
   if (DT) {
-    if (!OuterL && !CompletelyUnroll)
-      OuterL = L;
     if (OuterL) {
----------------
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.


Repository:
  rL LLVM

https://reviews.llvm.org/D28073





More information about the llvm-commits mailing list