From 825cb98d9a9a28c007d6a10d5ebec858e669a685 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 3 Jul 2008 00:08:13 +0000 Subject: [PATCH] Undo previous patch. It is not that simple to fix dom info here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53062 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/LoopUnswitch.cpp | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/lib/Transforms/Scalar/LoopUnswitch.cpp b/lib/Transforms/Scalar/LoopUnswitch.cpp index 916bb5f7ae9..b6c6e03609d 100644 --- a/lib/Transforms/Scalar/LoopUnswitch.cpp +++ b/lib/Transforms/Scalar/LoopUnswitch.cpp @@ -1204,32 +1204,18 @@ void LoopUnswitch::RewriteLoopBodyWithConditionConstant(Loop *L, Value *LIC, // trying to update it is complicated. So instead we preserve the // loop structure and put the block on an dead code path. - BasicBlock *SISucc = SI->getSuccessor(i); BasicBlock* Old = SI->getParent(); BasicBlock* Split = SplitBlock(Old, SI, this); Instruction* OldTerm = Old->getTerminator(); - BranchInst::Create(Split, SISucc, + BranchInst::Create(Split, SI->getSuccessor(i), ConstantInt::getTrue(), OldTerm); - if (DT) { - // Now, SISucc is dominated by Old. - DT->changeImmediateDominator(SISucc, Old); - if (DF) { - // Now, Split does not dominate SISucc. - // SISucc is the only member in Split's DF. - DominanceFrontier::iterator S_DFI = DF->find(Split); - if (S_DFI != DF->end()) - S_DFI->second.clear(); - addBBToDomFrontier(*DF, S_DFI, Split, SISucc); - } - } - LPM->deleteSimpleAnalysisValue(Old->getTerminator(), L); Old->getTerminator()->eraseFromParent(); PHINode *PN; - for (BasicBlock::iterator II = SISucc->begin(); + for (BasicBlock::iterator II = SI->getSuccessor(i)->begin(); (PN = dyn_cast(II)); ++II) { Value *InVal = PN->removeIncomingValue(Split, false); PN->addIncoming(InVal, Old); -- 2.34.1