summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2019-02-06 07:49:17 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2019-02-06 07:49:17 +0000
commita4ccfc1841f90b0dbce3f4e36a97ca0901bf35d7 (patch)
tree99d002bbbe5586c7e5f69d35653cdd7556394dae /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
parent0d7ad3c9a3ba14843eefaa75366c1718b20b201d (diff)
downloadbcm5719-llvm-a4ccfc1841f90b0dbce3f4e36a97ca0901bf35d7.tar.gz
bcm5719-llvm-a4ccfc1841f90b0dbce3f4e36a97ca0901bf35d7.zip
[LoopSimplifyCFG] Do not count dead exit blocks twice, make CFG simpler
llvm-svn: 353276
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
index 3bb25b0f570..dbe68d00c50 100644
--- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
@@ -229,8 +229,10 @@ private:
// Now, all exit blocks that are not marked as live are dead.
SmallVector<BasicBlock *, 8> ExitBlocks;
L.getExitBlocks(ExitBlocks);
+ SmallPtrSet<BasicBlock *, 8> UniqueDeadExits;
for (auto *ExitBlock : ExitBlocks)
- if (!LiveExitBlocks.count(ExitBlock))
+ if (!LiveExitBlocks.count(ExitBlock) &&
+ UniqueDeadExits.insert(ExitBlock).second)
DeadExitBlocks.push_back(ExitBlock);
// Whether or not the edge From->To will still be present in graph after the
OpenPOWER on IntegriCloud