< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerEqualsNode.java
Print this page
rev 56282 : [mq]: graal
@@ -107,34 +107,19 @@
}
public static class IntegerEqualsOp extends CompareOp {
@Override
protected LogicNode optimizeNormalizeCompare(ConstantReflectionProvider constantReflection, MetaAccessProvider metaAccess, OptionValues options, Integer smallestCompareWidth,
- Constant constant, NormalizeCompareNode normalizeNode, boolean mirrored, NodeView view) {
+ Constant constant, AbstractNormalizeCompareNode normalizeNode, boolean mirrored, NodeView view) {
PrimitiveConstant primitive = (PrimitiveConstant) constant;
- ValueNode a = normalizeNode.getX();
- ValueNode b = normalizeNode.getY();
long cst = primitive.asLong();
-
if (cst == 0) {
- if (normalizeNode.getX().getStackKind() == JavaKind.Double || normalizeNode.getX().getStackKind() == JavaKind.Float) {
- return FloatEqualsNode.create(constantReflection, metaAccess, options, smallestCompareWidth, a, b, view);
- } else {
- return IntegerEqualsNode.create(constantReflection, metaAccess, options, smallestCompareWidth, a, b, view);
- }
+ return normalizeNode.createEqualComparison(constantReflection, metaAccess, options, smallestCompareWidth, view);
} else if (cst == 1) {
- if (normalizeNode.getX().getStackKind() == JavaKind.Double || normalizeNode.getX().getStackKind() == JavaKind.Float) {
- return FloatLessThanNode.create(b, a, !normalizeNode.isUnorderedLess, view);
- } else {
- return IntegerLessThanNode.create(constantReflection, metaAccess, options, smallestCompareWidth, b, a, view);
- }
+ return normalizeNode.createLowerComparison(true, constantReflection, metaAccess, options, smallestCompareWidth, view);
} else if (cst == -1) {
- if (normalizeNode.getX().getStackKind() == JavaKind.Double || normalizeNode.getX().getStackKind() == JavaKind.Float) {
- return FloatLessThanNode.create(a, b, normalizeNode.isUnorderedLess, view);
- } else {
- return IntegerLessThanNode.create(constantReflection, metaAccess, options, smallestCompareWidth, a, b, view);
- }
+ return normalizeNode.createLowerComparison(false, constantReflection, metaAccess, options, smallestCompareWidth, view);
} else {
return LogicConstantNode.contradiction();
}
}
< prev index next >