< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/MathUtil.java

Print this page

        

*** 86,105 **** private static ValueNode fixedDivBefore(StructuredGraph graph, FixedNode before, ValueNode dividend, ValueNode divisor, BiFunction<ValueNode, ValueNode, ValueNode> createDiv) { if (isConstantOne(divisor)) { return dividend; } ! ValueNode div = graph.addOrUniqueWithInputs(createDiv.apply(dividend, divisor)); if (div instanceof FixedBinaryNode) { FixedBinaryNode fixedDiv = (FixedBinaryNode) div; if (before.predecessor() instanceof FixedBinaryNode) { FixedBinaryNode binaryPredecessor = (FixedBinaryNode) before.predecessor(); if (fixedDiv.dataFlowEquals(binaryPredecessor)) { fixedDiv.safeDelete(); return binaryPredecessor; } } ! graph.addBeforeFixed(before, fixedDiv); } return div; } } --- 86,105 ---- private static ValueNode fixedDivBefore(StructuredGraph graph, FixedNode before, ValueNode dividend, ValueNode divisor, BiFunction<ValueNode, ValueNode, ValueNode> createDiv) { if (isConstantOne(divisor)) { return dividend; } ! ValueNode div = createDiv.apply(dividend, divisor); if (div instanceof FixedBinaryNode) { FixedBinaryNode fixedDiv = (FixedBinaryNode) div; if (before.predecessor() instanceof FixedBinaryNode) { FixedBinaryNode binaryPredecessor = (FixedBinaryNode) before.predecessor(); if (fixedDiv.dataFlowEquals(binaryPredecessor)) { fixedDiv.safeDelete(); return binaryPredecessor; } } ! graph.addBeforeFixed(before, graph.addOrUniqueWithInputs(fixedDiv)); } return div; } }
< prev index next >