forked from OSchip/llvm-project
Remove unnecessary IDom check
Summary: This Idom check seems unnecessary. The immediate children of a node on the Dominator Tree should always be the IDom of its immediate children in this case. Reviewers: hfinkel, majnemer, dberlin Reviewed By: dberlin Subscribers: dberlin, davide, llvm-commits Differential Revision: https://reviews.llvm.org/D26954 llvm-svn: 298232
This commit is contained in:
parent
ff9749f759
commit
cbf04d95e6
|
@ -164,13 +164,14 @@ static bool SinkInstruction(Instruction *Inst,
|
||||||
|
|
||||||
// Instructions can only be sunk if all their uses are in blocks
|
// Instructions can only be sunk if all their uses are in blocks
|
||||||
// dominated by one of the successors.
|
// dominated by one of the successors.
|
||||||
// Look at all the postdominators and see if we can sink it in one.
|
// Look at all the dominated blocks and see if we can sink it in one.
|
||||||
DomTreeNode *DTN = DT.getNode(Inst->getParent());
|
DomTreeNode *DTN = DT.getNode(Inst->getParent());
|
||||||
for (DomTreeNode::iterator I = DTN->begin(), E = DTN->end();
|
for (DomTreeNode::iterator I = DTN->begin(), E = DTN->end();
|
||||||
I != E && SuccToSinkTo == nullptr; ++I) {
|
I != E && SuccToSinkTo == nullptr; ++I) {
|
||||||
BasicBlock *Candidate = (*I)->getBlock();
|
BasicBlock *Candidate = (*I)->getBlock();
|
||||||
if ((*I)->getIDom()->getBlock() == Inst->getParent() &&
|
// A node always immediate-dominates its children on the dominator
|
||||||
IsAcceptableTarget(Inst, Candidate, DT, LI))
|
// tree.
|
||||||
|
if (IsAcceptableTarget(Inst, Candidate, DT, LI))
|
||||||
SuccToSinkTo = Candidate;
|
SuccToSinkTo = Candidate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue