Mercurial > hg > truffle
changeset 8398:2d1b0b20f89d
small change VirtualInstanceNode constructor
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 20 Mar 2013 13:41:13 +0100 |
parents | 0f86d2449070 |
children | 841ae7237a14 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectCloneNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java |
diffstat | 3 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectCloneNode.java Wed Mar 20 11:34:31 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ObjectCloneNode.java Wed Mar 20 13:41:13 2013 +0100 @@ -116,14 +116,15 @@ ResolvedJavaType type = getConcreteType(obj.objectStamp(), tool.getAssumptions()); if (isCloneableType(type, tool.getMetaAccessProvider())) { if (!type.isArray()) { - ResolvedJavaField[] fields = type.getInstanceFields(true); + VirtualInstanceNode newVirtual = new VirtualInstanceNode(type); + ResolvedJavaField[] fields = newVirtual.getFields(); + ValueNode[] state = new ValueNode[fields.length]; final LoadFieldNode[] loads = new LoadFieldNode[fields.length]; for (int i = 0; i < fields.length; i++) { state[i] = loads[i] = graph().add(new LoadFieldNode(obj, fields[i])); } - VirtualObjectNode newVirtual = new VirtualInstanceNode(type, fields); final StructuredGraph structuredGraph = (StructuredGraph) graph(); tool.customAction(new Runnable() {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Wed Mar 20 11:34:31 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Wed Mar 20 13:41:13 2013 +0100 @@ -95,12 +95,12 @@ public void virtualize(VirtualizerTool tool) { if (instanceClass != null) { assert !instanceClass().isArray(); - ResolvedJavaField[] fields = instanceClass().getInstanceFields(true); + VirtualInstanceNode virtualObject = new VirtualInstanceNode(instanceClass()); + ResolvedJavaField[] fields = virtualObject.getFields(); ValueNode[] state = new ValueNode[fields.length]; for (int i = 0; i < state.length; i++) { state[i] = ConstantNode.defaultForKind(fields[i].getType().getKind(), graph()); } - VirtualObjectNode virtualObject = new VirtualInstanceNode(instanceClass(), fields); tool.createVirtualObject(virtualObject, state, 0); tool.replaceWithVirtual(virtualObject); }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java Wed Mar 20 11:34:31 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java Wed Mar 20 13:41:13 2013 +0100 @@ -31,9 +31,9 @@ private final ResolvedJavaType type; private final ResolvedJavaField[] fields; - public VirtualInstanceNode(ResolvedJavaType type, ResolvedJavaField[] fields) { + public VirtualInstanceNode(ResolvedJavaType type) { this.type = type; - this.fields = fields; + this.fields = type.getInstanceFields(true); } @Override @@ -91,6 +91,6 @@ @Override public VirtualInstanceNode duplicate() { - return new VirtualInstanceNode(type, fields); + return new VirtualInstanceNode(type); } }