diff options
Diffstat (limited to 'polly/lib/CodeGen/IslCodeGeneration.cpp')
-rw-r--r-- | polly/lib/CodeGen/IslCodeGeneration.cpp | 8 |
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>(); |