mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-07 04:21:27 +00:00
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298232 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9534108197
commit
f030d6b014
@ -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
Block a user