Mercurial > hg > graal-compiler
changeset 7021:cc72b8b5edca
let VirtualObjectNodes react to materialization
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 23 Nov 2012 15:01:37 +0100 |
parents | 7e12f1d11a5d |
children | 231cfb5490d3 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java |
diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 + } }
--- 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());