38 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions; |
38 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions; |
39 import org.graalvm.compiler.nodes.ValueNode; |
39 import org.graalvm.compiler.nodes.ValueNode; |
40 import org.graalvm.compiler.nodes.java.LoadFieldNode; |
40 import org.graalvm.compiler.nodes.java.LoadFieldNode; |
41 import org.graalvm.compiler.nodes.java.NewInstanceNode; |
41 import org.graalvm.compiler.nodes.java.NewInstanceNode; |
42 import org.graalvm.compiler.nodes.java.StoreFieldNode; |
42 import org.graalvm.compiler.nodes.java.StoreFieldNode; |
43 import org.graalvm.compiler.nodes.spi.ArrayLengthProvider; |
|
44 import org.graalvm.compiler.nodes.spi.LoweringTool; |
43 import org.graalvm.compiler.nodes.spi.LoweringTool; |
45 import org.graalvm.compiler.nodes.spi.Replacements; |
44 import org.graalvm.compiler.nodes.spi.Replacements; |
46 import org.graalvm.compiler.nodes.spi.VirtualizableAllocation; |
|
47 import org.graalvm.compiler.nodes.type.StampTool; |
45 import org.graalvm.compiler.nodes.type.StampTool; |
48 import org.graalvm.compiler.replacements.nodes.BasicObjectCloneNode; |
46 import org.graalvm.compiler.replacements.nodes.BasicObjectCloneNode; |
49 |
47 |
50 import jdk.vm.ci.meta.Assumptions; |
48 import jdk.vm.ci.meta.Assumptions; |
51 import jdk.vm.ci.meta.ResolvedJavaField; |
49 import jdk.vm.ci.meta.ResolvedJavaField; |
52 import jdk.vm.ci.meta.ResolvedJavaMethod; |
50 import jdk.vm.ci.meta.ResolvedJavaMethod; |
53 import jdk.vm.ci.meta.ResolvedJavaType; |
51 import jdk.vm.ci.meta.ResolvedJavaType; |
54 |
52 |
55 @NodeInfo |
53 @NodeInfo |
56 public final class ObjectCloneNode extends BasicObjectCloneNode implements VirtualizableAllocation, ArrayLengthProvider { |
54 public final class ObjectCloneNode extends BasicObjectCloneNode { |
57 |
55 |
58 public static final NodeClass<ObjectCloneNode> TYPE = NodeClass.create(ObjectCloneNode.class); |
56 public static final NodeClass<ObjectCloneNode> TYPE = NodeClass.create(ObjectCloneNode.class); |
59 |
57 |
60 public ObjectCloneNode(InvokeKind invokeKind, ResolvedJavaMethod targetMethod, int bci, StampPair returnStamp, ValueNode receiver) { |
58 public ObjectCloneNode(InvokeKind invokeKind, ResolvedJavaMethod targetMethod, int bci, StampPair returnStamp, ValueNode receiver) { |
61 super(TYPE, invokeKind, targetMethod, bci, returnStamp, receiver); |
59 super(TYPE, invokeKind, targetMethod, bci, returnStamp, receiver); |