diff options
Diffstat (limited to 'polly/lib/CodeGen/CodeGeneration.cpp')
-rw-r--r-- | polly/lib/CodeGen/CodeGeneration.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp index 06f0fa7854f..753942fea21 100644 --- a/polly/lib/CodeGen/CodeGeneration.cpp +++ b/polly/lib/CodeGen/CodeGeneration.cpp @@ -924,6 +924,13 @@ void ClastStmtCodeGen::codegen(const clast_guard *g) { Builder.CreateBr(MergeBB); Builder.SetInsertPoint(ThenBB->begin()); + LoopInfo &LI = P->getAnalysis<LoopInfo>(); + Loop *L = LI.getLoopFor(CondBB); + if (L) { + L->addBasicBlockToLoop(ThenBB, LI.getBase()); + L->addBasicBlockToLoop(MergeBB, LI.getBase()); + } + codegen(g->then); Builder.SetInsertPoint(MergeBB->begin()); @@ -1030,8 +1037,6 @@ public: AU.addPreserved<CloogInfo>(); AU.addPreserved<Dependences>(); - - // FIXME: We do not create LoopInfo for the newly generated loops. AU.addPreserved<LoopInfo>(); AU.addPreserved<DominatorTree>(); AU.addPreserved<ScopDetection>(); |