src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LogicNode.java
changeset 50330 2cbc42a5764b
parent 47216 71c04702a3d5
child 50858 2d3e99a72541
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LogicNode.java	Thu May 31 10:14:41 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LogicNode.java	Thu May 31 10:38:05 2018 -0700
@@ -25,6 +25,7 @@
 import static org.graalvm.compiler.nodeinfo.InputType.Condition;
 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1;
 
+import jdk.vm.ci.meta.TriState;
 import org.graalvm.compiler.core.common.type.StampFactory;
 import org.graalvm.compiler.graph.Node.IndirectCanonicalization;
 import org.graalvm.compiler.graph.NodeClass;
@@ -75,4 +76,19 @@
 
         return false;
     }
+
+    /**
+     * Determines what this condition implies about the other.
+     *
+     * <ul>
+     * <li>If negate(this, thisNegated) => other, returns {@link TriState#TRUE}</li>
+     * <li>If negate(this, thisNegated) => !other, returns {@link TriState#FALSE}</li>
+     * </ul>
+     *
+     * @param thisNegated whether this condition should be considered as false.
+     * @param other the other condition.
+     */
+    public TriState implies(boolean thisNegated, LogicNode other) {
+        return TriState.UNKNOWN;
+    }
 }