[PATCH] D17442: [LPM] Remove the last worrisome split in the primary loop pass pipeline, allowing LICM and friends to always run over the outer loop after unrolling has a chance to remove the inner loop.
Michael Zolotukhin via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 19 16:53:56 PST 2016
mzolotukhin added a comment.
The testing just finished, i got a huge number of stability failures though. They're caused by two assertions:
1. Assertion failed: (hasDedicatedExits() && "getUniqueExitBlocks assumes the loop has canonical form exits!"), function getUniqueExitBlocks, file /Users/buildslave/devel/llvm.git/lib/Analysis/LoopInfo.cpp, line 333.
Reproducer:
; RUN: opt -loop-instsimplify < %s
define void @main() {
entry:
br label %L1
L1:
br label %L2
L2:
indirectbr i8* undef, [label %L1, label %L2]
}
The issue here is probably that we're not cleaning up enough.
2. Assertion failed: (InnerAST && "Where is my AST?"), function collectAliasInfoFromSubLoops, file /Users/buildslave/devel/llvm.git/lib/Transforms/Scalar/LICM.cpp, line 1048.
My bugpoint-fu failed me here, so I don't have a small testcase. But if you run testsuite, you should definitely see it.
There are several gains and regressions in both compile and execution times, but I suggest remeasuring it when the assertion failures are fixed.
http://reviews.llvm.org/D17442
More information about the llvm-commits
mailing list