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);