aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar/LoopUnswitch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/Scalar/LoopUnswitch.cpp')
-rw-r--r--lib/Transforms/Scalar/LoopUnswitch.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/lib/Transforms/Scalar/LoopUnswitch.cpp b/lib/Transforms/Scalar/LoopUnswitch.cpp
index 3ef6376899..4dba14d34b 100644
--- a/lib/Transforms/Scalar/LoopUnswitch.cpp
+++ b/lib/Transforms/Scalar/LoopUnswitch.cpp
@@ -452,28 +452,22 @@ void CloneDomInfo(BasicBlock *NewBB, BasicBlock *Orig,
else
OrigIDom = OrigIDomNode->getBlock();
- // Initially use Orig's immediate dominator as NewBB's immediate dominator.
- BasicBlock *NewIDom = OrigIDom;
- DenseMap<const Value*, Value*>::iterator I = VM.find(OrigIDom);
- if (I != VM.end()) {
- // if (!DT->getNode(OrigIDom))
- // CloneDomInfo(NewIDom, OrigIDom, NewPreheader, OrigPreheader,
- // OrigHeader, DT, DF, VM);
-
- NewIDom = cast<BasicBlock>(I->second);
-
- // If NewIDom does not have corresponding dominatore tree node then
- // get one.
- if (!DT->getNode(NewIDom))
+ // Initially use Orig's immediate dominator as NewBB's immediate dominator.
+ BasicBlock *NewIDom = OrigIDom;
+ DenseMap<const Value*, Value*>::iterator I = VM.find(OrigIDom);
+ if (I != VM.end()) {
+ NewIDom = cast<BasicBlock>(I->second);
+
+ // If NewIDom does not have corresponding dominatore tree node then
+ // get one.
+ if (!DT->getNode(NewIDom))
CloneDomInfo(NewIDom, OrigIDom, NewPreheader, OrigPreheader,
OrigHeader, DT, DF, VM);
}
- // if (NewBB == NewIDom) {
- // DT->addNewBlock(NewBB, OrigIDom);
- // DT->changeImmediateDominator(NewBB, NewIDom);
- //} else
- DT->addNewBlock(NewBB, NewIDom);
-
+
+ DT->addNewBlock(NewBB, NewIDom);
+
+ // Copy cloned dominance frontiner set
DominanceFrontier::DomSetType NewDFSet;
if (DF) {
DominanceFrontier::iterator DFI = DF->find(Orig);