diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2018-11-22 10:48:30 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2018-11-22 10:48:30 +0000 |
commit | d9f59f8c80a4118792bab25216ef75d33c8a4ee6 (patch) | |
tree | 8e051087d84553c64584e8b812f8b06804ad7034 /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | |
parent | 314cfb539be771bc5b46b5f7a3afa24b214d8e41 (diff) | |
download | bcm5719-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.cpp | 18 |
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); |