Mercurial > hg > truffle
comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java @ 20074:a7ee2e1f0d4e
remove UnboxNodes without usages (if object is non-null)
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 30 Mar 2015 13:59:59 +0200 |
parents | 8aa5bd9935b3 |
children | a4aa2116cfe0 |
comparison
equal
deleted
inserted
replaced
20073:a875af927be8 | 20074:a7ee2e1f0d4e |
---|---|
27 import com.oracle.graal.graph.*; | 27 import com.oracle.graal.graph.*; |
28 import com.oracle.graal.graph.spi.*; | 28 import com.oracle.graal.graph.spi.*; |
29 import com.oracle.graal.nodeinfo.*; | 29 import com.oracle.graal.nodeinfo.*; |
30 import com.oracle.graal.nodes.*; | 30 import com.oracle.graal.nodes.*; |
31 import com.oracle.graal.nodes.spi.*; | 31 import com.oracle.graal.nodes.spi.*; |
32 import com.oracle.graal.nodes.type.*; | |
32 | 33 |
33 @NodeInfo | 34 @NodeInfo |
34 public final class UnboxNode extends FixedWithNextNode implements Virtualizable, Lowerable, Canonicalizable.Unary<ValueNode> { | 35 public final class UnboxNode extends FixedWithNextNode implements Virtualizable, Lowerable, Canonicalizable.Unary<ValueNode> { |
35 | 36 |
36 public static final NodeClass<UnboxNode> TYPE = NodeClass.create(UnboxNode.class); | 37 public static final NodeClass<UnboxNode> TYPE = NodeClass.create(UnboxNode.class); |
76 } | 77 } |
77 } | 78 } |
78 | 79 |
79 @Override | 80 @Override |
80 public ValueNode canonical(CanonicalizerTool tool, ValueNode forValue) { | 81 public ValueNode canonical(CanonicalizerTool tool, ValueNode forValue) { |
82 if (hasNoUsages() && StampTool.isPointerNonNull(forValue)) { | |
83 return null; | |
84 } | |
81 ValueNode synonym = findSynonym(tool.getMetaAccess(), tool.getConstantReflection(), forValue, boxingKind); | 85 ValueNode synonym = findSynonym(tool.getMetaAccess(), tool.getConstantReflection(), forValue, boxingKind); |
82 if (synonym != null) { | 86 if (synonym != null) { |
83 return synonym; | 87 return synonym; |
84 } | 88 } |
85 return this; | 89 return this; |