22 */ |
22 */ |
23 package org.graalvm.compiler.nodes.calc; |
23 package org.graalvm.compiler.nodes.calc; |
24 |
24 |
25 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2; |
25 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2; |
26 |
26 |
27 import org.graalvm.compiler.core.common.calc.Condition; |
27 import org.graalvm.compiler.core.common.calc.CanonicalCondition; |
28 import org.graalvm.compiler.core.common.type.Stamp; |
28 import org.graalvm.compiler.core.common.type.Stamp; |
29 import org.graalvm.compiler.core.common.type.StampFactory; |
29 import org.graalvm.compiler.core.common.type.StampFactory; |
30 import org.graalvm.compiler.graph.IterableNodeType; |
30 import org.graalvm.compiler.graph.IterableNodeType; |
31 import org.graalvm.compiler.graph.NodeClass; |
31 import org.graalvm.compiler.graph.NodeClass; |
32 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
32 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
65 |
65 |
66 return new NormalizeCompareNode(x, y, kind, isUnorderedLess); |
66 return new NormalizeCompareNode(x, y, kind, isUnorderedLess); |
67 } |
67 } |
68 |
68 |
69 protected static ValueNode tryConstantFold(ValueNode x, ValueNode y, boolean isUnorderedLess, JavaKind kind, ConstantReflectionProvider constantReflection) { |
69 protected static ValueNode tryConstantFold(ValueNode x, ValueNode y, boolean isUnorderedLess, JavaKind kind, ConstantReflectionProvider constantReflection) { |
70 LogicNode result = CompareNode.tryConstantFold(Condition.EQ, x, y, null, false); |
70 LogicNode result = CompareNode.tryConstantFold(CanonicalCondition.EQ, x, y, null, false); |
71 if (result instanceof LogicConstantNode) { |
71 if (result instanceof LogicConstantNode) { |
72 LogicConstantNode logicConstantNode = (LogicConstantNode) result; |
72 LogicConstantNode logicConstantNode = (LogicConstantNode) result; |
73 LogicNode resultLT = CompareNode.tryConstantFold(Condition.LT, x, y, constantReflection, isUnorderedLess); |
73 LogicNode resultLT = CompareNode.tryConstantFold(CanonicalCondition.LT, x, y, constantReflection, isUnorderedLess); |
74 if (resultLT instanceof LogicConstantNode) { |
74 if (resultLT instanceof LogicConstantNode) { |
75 LogicConstantNode logicConstantNodeLT = (LogicConstantNode) resultLT; |
75 LogicConstantNode logicConstantNodeLT = (LogicConstantNode) resultLT; |
76 if (logicConstantNodeLT.getValue()) { |
76 if (logicConstantNodeLT.getValue()) { |
77 return ConstantNode.forIntegerKind(kind, -1); |
77 return ConstantNode.forIntegerKind(kind, -1); |
78 } else if (logicConstantNode.getValue()) { |
78 } else if (logicConstantNode.getValue()) { |