summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2018-11-22 10:48:30 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2018-11-22 10:48:30 +0000
commitd9f59f8c80a4118792bab25216ef75d33c8a4ee6 (patch)
tree8e051087d84553c64584e8b812f8b06804ad7034 /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
parent314cfb539be771bc5b46b5f7a3afa24b214d8e41 (diff)
downloadbcm5719-llvm-d9f59f8c80a4118792bab25216ef75d33c8a4ee6.tar.gz
bcm5719-llvm-d9f59f8c80a4118792bab25216ef75d33c8a4ee6.zip
[NFC] Simplify code by using standard exit blocks collection
llvm-svn: 347454
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
index f71ffca8acb..683ea1a80db 100644
--- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
@@ -142,7 +142,6 @@ private:
assert(DFS.isComplete() && "DFS is expected to be finished");
// Collect live and dead loop blocks and exits.
- SmallPtrSet<BasicBlock *, 8> ExitBlocks;
LiveLoopBlocks.insert(L.getHeader());
for (auto I = DFS.beginRPO(), E = DFS.endRPO(); I != E; ++I) {
BasicBlock *BB = *I;
@@ -163,16 +162,13 @@ private:
FoldCandidates.push_back(BB);
// Handle successors.
- auto ProcessSuccessor = [&](BasicBlock *Succ, bool IsLive) {
- if (!L.contains(Succ)) {
- if (IsLive)
- LiveExitBlocks.insert(Succ);
- ExitBlocks.insert(Succ);
- } else if (IsLive)
- LiveLoopBlocks.insert(Succ);
- };
for (BasicBlock *Succ : successors(BB))
- ProcessSuccessor(Succ, !TheOnlySucc || TheOnlySucc == Succ);
+ if (!TheOnlySucc || TheOnlySucc == Succ) {
+ if (L.contains(Succ))
+ LiveLoopBlocks.insert(Succ);
+ else
+ LiveExitBlocks.insert(Succ);
+ }
}
// Sanity check: amount of dead and live loop blocks should match the total
@@ -181,6 +177,8 @@ private:
"Malformed block sets?");
// Now, all exit blocks that are not marked as live are dead.
+ SmallVector<BasicBlock *, 8> ExitBlocks;
+ L.getExitBlocks(ExitBlocks);
for (auto *ExitBlock : ExitBlocks)
if (!LiveExitBlocks.count(ExitBlock))
DeadExitBlocks.insert(ExitBlock);
OpenPOWER on IntegriCloud