< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/InstanceOfNode.java

Print this page

        

*** 41,59 **** --- 41,64 ---- import org.graalvm.compiler.nodes.LogicNegationNode; import org.graalvm.compiler.nodes.LogicNode; import org.graalvm.compiler.nodes.NodeView; import org.graalvm.compiler.nodes.UnaryOpLogicNode; import org.graalvm.compiler.nodes.ValueNode; + import org.graalvm.compiler.nodes.calc.ConditionalNode; import org.graalvm.compiler.nodes.calc.IsNullNode; import org.graalvm.compiler.nodes.extended.AnchoringNode; + import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext; import org.graalvm.compiler.nodes.spi.Lowerable; import org.graalvm.compiler.nodes.spi.LoweringTool; import org.graalvm.compiler.nodes.spi.Virtualizable; import org.graalvm.compiler.nodes.spi.VirtualizerTool; import org.graalvm.compiler.nodes.type.StampTool; + import jdk.vm.ci.meta.JavaKind; import jdk.vm.ci.meta.JavaTypeProfile; + import jdk.vm.ci.meta.ResolvedJavaMethod; + import jdk.vm.ci.meta.ResolvedJavaType; import jdk.vm.ci.meta.TriState; /** * The {@code InstanceOfNode} represents an instanceof test. */
*** 216,225 **** --- 221,241 ---- public ObjectStamp getCheckedStamp() { return checkedStamp; } + @NodeIntrinsic + public static native boolean doInstanceof(@ConstantNodeParameter ResolvedJavaType type, Object object); + + @SuppressWarnings("unused") + static boolean intrinsify(GraphBuilderContext b, ResolvedJavaMethod method, ResolvedJavaType type, ValueNode object) { + InstanceOfNode node = new InstanceOfNode(StampFactory.objectNonNull(TypeReference.create(b.getAssumptions(), type)), object, null, null); + node = b.add(node); + b.addPush(JavaKind.Int, ConditionalNode.create(node, NodeView.DEFAULT)); + return true; + } + @Override public TriState implies(boolean thisNegated, LogicNode other) { if (other instanceof InstanceOfNode) { InstanceOfNode instanceOfNode = (InstanceOfNode) other; if (instanceOfNode.getValue() == getValue()) {
< prev index next >