diff options
author | Andreas Simbuerger <simbuerg@fim.uni-passau.de> | 2017-06-27 11:33:22 +0000 |
---|---|---|
committer | Andreas Simbuerger <simbuerg@fim.uni-passau.de> | 2017-06-27 11:33:22 +0000 |
commit | dbb0ef8e9440a3d5c105eb9f3de05cfd67c6f31c (patch) | |
tree | d07af220950b96847100c46cf6bba19d89e8e0d7 | |
parent | cdda23eb7c8076eddc6182f7bfb373204ea93e85 (diff) | |
download | bcm5719-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.cpp | 6 |
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()); } |