# HG changeset patch # User Lukas Stadler # Date 1353679297 -3600 # Node ID cc72b8b5edca3afa51709b14500f91bc5e41727a # Parent 7e12f1d11a5df767990c41c7b9f0f2d354607501 let VirtualObjectNodes react to materialization diff -r 7e12f1d11a5d -r cc72b8b5edca graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Fri Nov 23 14:01:02 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Fri Nov 23 15:01:37 2012 +0100 @@ -24,6 +24,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; +import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; @@ -52,4 +53,8 @@ } public abstract Object fieldName(int i); + + public void materializeAt(@SuppressWarnings("unused") FixedNode fixed) { + // nothing to do in here - this method allows subclasses to respond to materialization + } } diff -r 7e12f1d11a5d -r cc72b8b5edca graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java Fri Nov 23 14:01:02 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java Fri Nov 23 15:01:37 2012 +0100 @@ -119,6 +119,7 @@ materializeEffects.addFixedNodeBefore(newObject, fixed); } else { // some entries are not default constants - do the materialization + virtual.materializeAt(fixed); MaterializeObjectNode materialize = new MaterializeObjectNode(virtual, obj.getLockCount()); ValueNode[] values = new ValueNode[obj.getEntries().length]; materialize.setProbability(fixed.probability());