mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[NFC] Move function up in code
This commit is contained in:
parent
2ca3074b8b
commit
596eabe11c
@ -99,6 +99,24 @@ namespace {
|
||||
};
|
||||
}
|
||||
|
||||
/// Find a point in code which dominates all given instructions. We can safely
|
||||
/// assume that, whatever fact we can prove at the found point, this fact is
|
||||
/// also true for each of the given instructions.
|
||||
static Instruction *findCommonDominator(ArrayRef<Instruction *> Instructions,
|
||||
DominatorTree &DT) {
|
||||
Instruction *CommonDom = nullptr;
|
||||
for (auto *Insn : Instructions)
|
||||
if (!CommonDom || DT.dominates(Insn, CommonDom))
|
||||
CommonDom = Insn;
|
||||
else if (!DT.dominates(CommonDom, Insn))
|
||||
// If there is no dominance relation, use common dominator.
|
||||
CommonDom =
|
||||
DT.findNearestCommonDominator(CommonDom->getParent(),
|
||||
Insn->getParent())->getTerminator();
|
||||
assert(CommonDom && "Common dominator not found?");
|
||||
return CommonDom;
|
||||
}
|
||||
|
||||
/// Fold an IV operand into its use. This removes increments of an
|
||||
/// aligned IV when used by a instruction that ignores the low bits.
|
||||
///
|
||||
@ -1477,24 +1495,6 @@ bool WidenIV::widenLoopCompare(WidenIV::NarrowIVDefUse DU) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Find a point in code which dominates all given instructions. We can safely
|
||||
/// assume that, whatever fact we can prove at the found point, this fact is
|
||||
/// also true for each of the given instructions.
|
||||
static Instruction *findCommonDominator(ArrayRef<Instruction *> Instructions,
|
||||
DominatorTree &DT) {
|
||||
Instruction *CommonDom = nullptr;
|
||||
for (auto *Insn : Instructions)
|
||||
if (!CommonDom || DT.dominates(Insn, CommonDom))
|
||||
CommonDom = Insn;
|
||||
else if (!DT.dominates(CommonDom, Insn))
|
||||
// If there is no dominance relation, use common dominator.
|
||||
CommonDom =
|
||||
DT.findNearestCommonDominator(CommonDom->getParent(),
|
||||
Insn->getParent())->getTerminator();
|
||||
assert(CommonDom && "Common dominator not found?");
|
||||
return CommonDom;
|
||||
}
|
||||
|
||||
// The widenIVUse avoids generating trunc by evaluating the use as AddRec, this
|
||||
// will not work when:
|
||||
// 1) SCEV traces back to an instruction inside the loop that SCEV can not
|
||||
|
Loading…
Reference in New Issue
Block a user