diff options
author | Alina Sbirlea <asbirlea@google.com> | 2018-08-09 17:53:26 +0000 |
---|---|---|
committer | Alina Sbirlea <asbirlea@google.com> | 2018-08-09 17:53:26 +0000 |
commit | bf9fe79397419a33d1bda13836b9218d0f3e4108 (patch) | |
tree | 5d828193bcb96dcc8e3358ebd380e417d4274d58 /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | |
parent | 7a3dc2c184c170f4477549f306f7a453dafebc99 (diff) | |
download | bcm5719-llvm-bf9fe79397419a33d1bda13836b9218d0f3e4108.tar.gz bcm5719-llvm-bf9fe79397419a33d1bda13836b9218d0f3e4108.zip |
SCEV should forget all loops containing a deleted block.
Summary:
LoopSimplifyCFG should update ScEv for all loops after a block is deleted.
If the deleted block "Succ" is part of L, then it is part of all parent loops, so forget topmost loop.
Reviewers: greened, mkazantsev, sanjoy
Subscribers: jlebar, javed.absar, uabelho, llvm-commits
Differential Revision: https://reviews.llvm.org/D50422
llvm-svn: 339363
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp index 3f31d8efeb4..65e051c4a7a 100644 --- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp +++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp @@ -61,7 +61,8 @@ static bool simplifyLoopCFG(Loop &L, DominatorTree &DT, LoopInfo &LI, // Merge Succ into Pred and delete it. MergeBlockIntoPredecessor(Succ, &DTU, &LI); - SE.forgetLoop(&L); + SE.forgetTopmostLoop(&L); + Changed = true; } |