forked from OSchip/llvm-project
LICM: Reorder condition checks
Check the fast math flag before the more expensive loop check.
This commit is contained in:
parent
88aced1e45
commit
f9047ede58
|
@ -818,9 +818,8 @@ bool llvm::hoistRegion(DomTreeNode *N, AliasAnalysis *AA, LoopInfo *LI,
|
|||
|
||||
// Attempt to remove floating point division out of the loop by
|
||||
// converting it to a reciprocal multiplication.
|
||||
if (I.getOpcode() == Instruction::FDiv &&
|
||||
CurLoop->isLoopInvariant(I.getOperand(1)) &&
|
||||
I.hasAllowReciprocal()) {
|
||||
if (I.getOpcode() == Instruction::FDiv && I.hasAllowReciprocal() &&
|
||||
CurLoop->isLoopInvariant(I.getOperand(1))) {
|
||||
auto Divisor = I.getOperand(1);
|
||||
auto One = llvm::ConstantFP::get(Divisor->getType(), 1.0);
|
||||
auto ReciprocalDivisor = BinaryOperator::CreateFDiv(One, Divisor);
|
||||
|
|
Loading…
Reference in New Issue