summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Simbuerger <simbuerg@fim.uni-passau.de>2017-06-27 11:33:22 +0000
committerAndreas Simbuerger <simbuerg@fim.uni-passau.de>2017-06-27 11:33:22 +0000
commitdbb0ef8e9440a3d5c105eb9f3de05cfd67c6f31c (patch)
treed07af220950b96847100c46cf6bba19d89e8e0d7
parentcdda23eb7c8076eddc6182f7bfb373204ea93e85 (diff)
downloadbcm5719-llvm-dbb0ef8e9440a3d5c105eb9f3de05cfd67c6f31c.tar.gz
bcm5719-llvm-dbb0ef8e9440a3d5c105eb9f3de05cfd67c6f31c.zip
[NFC][CodeGen] Use the ExitBlock explicitly.
Before we would 'guess' the correct location for the MergeBlock that got introduced when executing a Scop conditionally. This implicitly depends on the situation that at this point during CodeGen there will be nothing between polly.start and polly.exiting. With this commit we explicitly state that we want the block that directly follows polly.exiting. llvm-svn: 306398
-rw-r--r--polly/lib/CodeGen/CodeGeneration.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp
index 41ee788402f..fc2bcf056fb 100644
--- a/polly/lib/CodeGen/CodeGeneration.cpp
+++ b/polly/lib/CodeGen/CodeGeneration.cpp
@@ -178,6 +178,7 @@ static bool CodeGen(Scop &S, IslAstInfo &AI, LoopInfo &LI, DominatorTree &DT,
BBPair StartExitBlocks =
executeScopConditionally(S, Builder.getTrue(), DT, RI, LI);
BasicBlock *StartBlock = std::get<0>(StartExitBlocks);
+ BasicBlock *ExitBlock = std::get<1>(StartExitBlocks);
removeLifetimeMarkers(R);
auto *SplitBlock = StartBlock->getSinglePredecessor();
@@ -194,10 +195,7 @@ static bool CodeGen(Scop &S, IslAstInfo &AI, LoopInfo &LI, DominatorTree &DT,
P.initialize();
P.insertRegionStart(SplitBlock->getTerminator());
- BasicBlock *MergeBlock = SplitBlock->getTerminator()
- ->getSuccessor(0)
- ->getUniqueSuccessor()
- ->getUniqueSuccessor();
+ BasicBlock *MergeBlock = ExitBlock->getUniqueSuccessor();
P.insertRegionEnd(MergeBlock->getTerminator());
}
OpenPOWER on IntegriCloud