summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2018-12-11 19:05:35 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2018-12-11 19:05:35 +0000
commita1d95c3fc426f1fc54758866d8a0e8718a82a745 (patch)
treeb74bc92ef0ca2ebbd6bee333fde390a3c362635c /llvm/lib/Transforms/Scalar/LoopPassManager.cpp
parent8876dac50aafa5a265c1fb1a9d4e38f97b83dfb6 (diff)
downloadbcm5719-llvm-a1d95c3fc426f1fc54758866d8a0e8718a82a745.tar.gz
bcm5719-llvm-a1d95c3fc426f1fc54758866d8a0e8718a82a745.zip
[NewPM] fixing asserts on deleted loop in -print-after-all
IR-printing AfterPass instrumentation might be called on a loop that has just been invalidated. We should skip printing it to avoid spurious asserts. Reviewed By: chandlerc, philip.pfaffe Differential Revision: https://reviews.llvm.org/D54740 llvm-svn: 348887
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopPassManager.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopPassManager.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
index 6759bd2537c..774ad7b945a 100644
--- a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp
@@ -44,7 +44,11 @@ PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &,
PreservedAnalyses PassPA = Pass->run(L, AM, AR, U);
- PI.runAfterPass<Loop>(*Pass, L);
+ // do not pass deleted Loop into the instrumentation
+ if (U.skipCurrentLoop())
+ PI.runAfterPassInvalidated<Loop>(*Pass);
+ else
+ PI.runAfterPass<Loop>(*Pass, L);
// If the loop was deleted, abort the run and return to the outer walk.
if (U.skipCurrentLoop()) {
OpenPOWER on IntegriCloud