# HG changeset patch # User Gilles Duboscq # Date 1429115378 -7200 # Node ID 246ff20c0a5dacac72e6b7a18ca7890d2ee763e6 # Parent f26efa5116809a4c6cf4bbba53bd197b7481a5a2 Let GuardProxyNode canonicalize away if the proxied guard becomes null diff -r f26efa511680 -r 246ff20c0a5d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java Wed Apr 15 18:25:54 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java Wed Apr 15 18:29:38 2015 +0200 @@ -24,12 +24,13 @@ import com.oracle.graal.compiler.common.type.*; import com.oracle.graal.graph.*; +import com.oracle.graal.graph.spi.*; import com.oracle.graal.nodeinfo.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; @NodeInfo(allowedUsageTypes = {InputType.Guard}, nameTemplate = "Proxy({i#value})") -public final class GuardProxyNode extends ProxyNode implements GuardingNode, Proxy, LIRLowerable { +public final class GuardProxyNode extends ProxyNode implements GuardingNode, Proxy, LIRLowerable, Canonicalizable { public static final NodeClass TYPE = NodeClass.create(GuardProxyNode.class); @OptionalInput(InputType.Guard) GuardingNode value; @@ -56,4 +57,11 @@ public Node getOriginalNode() { return (value == null ? null : value.asNode()); } + + public Node canonical(CanonicalizerTool tool) { + if (value == null) { + return null; + } + return this; + } }