summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/IslCodeGeneration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/CodeGen/IslCodeGeneration.cpp')
-rw-r--r--polly/lib/CodeGen/IslCodeGeneration.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/polly/lib/CodeGen/IslCodeGeneration.cpp b/polly/lib/CodeGen/IslCodeGeneration.cpp
index 136a87321f4..d5c3a9f4359 100644
--- a/polly/lib/CodeGen/IslCodeGeneration.cpp
+++ b/polly/lib/CodeGen/IslCodeGeneration.cpp
@@ -860,6 +860,13 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) {
DT.addNewBlock(ElseBB, CondBB);
DT.changeImmediateDominator(MergeBB, CondBB);
+ LoopInfo &LI = P->getAnalysis<LoopInfo>();
+ Loop *L = LI.getLoopFor(CondBB);
+ if (L) {
+ L->addBasicBlockToLoop(ThenBB, LI.getBase());
+ L->addBasicBlockToLoop(ElseBB, LI.getBase());
+ }
+
CondBB->getTerminator()->eraseFromParent();
Builder.SetInsertPoint(CondBB);
@@ -1051,7 +1058,6 @@ public:
AU.addPreserved<Dependences>();
- // FIXME: We do not create LoopInfo for the newly generated loops.
AU.addPreserved<LoopInfo>();
AU.addPreserved<DominatorTree>();
AU.addPreserved<IslAstInfo>();
OpenPOWER on IntegriCloud