Mercurial > hg > truffle
comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java @ 19831:8aa5bd9935b3
Turn UnboxNode into a fixed node.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 13 Mar 2015 16:47:27 +0100 |
parents | 14e703edb2ab |
children | a7ee2e1f0d4e |
comparison
equal
deleted
inserted
replaced
19830:05a2fbf0e9a0 | 19831:8aa5bd9935b3 |
---|---|
26 import com.oracle.graal.compiler.common.type.*; | 26 import com.oracle.graal.compiler.common.type.*; |
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.calc.*; | |
32 import com.oracle.graal.nodes.spi.*; | 31 import com.oracle.graal.nodes.spi.*; |
33 | 32 |
34 @NodeInfo | 33 @NodeInfo |
35 public final class UnboxNode extends UnaryNode implements Virtualizable, Lowerable { | 34 public final class UnboxNode extends FixedWithNextNode implements Virtualizable, Lowerable, Canonicalizable.Unary<ValueNode> { |
36 | 35 |
37 public static final NodeClass<UnboxNode> TYPE = NodeClass.create(UnboxNode.class); | 36 public static final NodeClass<UnboxNode> TYPE = NodeClass.create(UnboxNode.class); |
37 @Input protected ValueNode value; | |
38 protected final Kind boxingKind; | 38 protected final Kind boxingKind; |
39 | 39 |
40 public ValueNode getValue() { | |
41 return value; | |
42 } | |
43 | |
40 protected UnboxNode(ValueNode value, Kind boxingKind) { | 44 protected UnboxNode(ValueNode value, Kind boxingKind) { |
41 super(TYPE, StampFactory.forKind(boxingKind.getStackKind()), value); | 45 super(TYPE, StampFactory.forKind(boxingKind.getStackKind())); |
46 this.value = value; | |
42 this.boxingKind = boxingKind; | 47 this.boxingKind = boxingKind; |
43 } | 48 } |
44 | 49 |
45 public static ValueNode create(MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, ValueNode value, Kind boxingKind) { | 50 public static ValueNode create(MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, ValueNode value, Kind boxingKind) { |
46 ValueNode synonym = findSynonym(metaAccess, constantReflection, value, boxingKind); | 51 ValueNode synonym = findSynonym(metaAccess, constantReflection, value, boxingKind); |