Mercurial > hg > graal-compiler
changeset 22645:cf8a2c999270
Allow PartialEscapePhase to be reused for PEA selective inlining
author | Paul Woegerer <paul.woegerer@oracle.com> |
---|---|
date | Wed, 16 Sep 2015 15:43:24 +0200 |
parents | 54257f3273df |
children | 05183a084a08 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java |
diffstat | 3 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java Wed Sep 16 14:42:30 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java Wed Sep 16 15:43:24 2015 +0200 @@ -145,4 +145,11 @@ */ void replaceWith(ValueNode value); + /** + * + * If state is virtual, materialization is performed for the given state. + * + * @return true if materialization happened, false if not. + */ + boolean ensureMaterialized(VirtualObjectNode virtualObject); }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Sep 16 14:42:30 2015 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Sep 16 15:43:24 2015 +0200 @@ -340,7 +340,7 @@ /** * @return true if materialization happened, false if not. */ - private boolean ensureMaterialized(PartialEscapeBlockState<?> state, int object, FixedNode materializeBefore, GraphEffectList effects, DebugMetric metric) { + protected boolean ensureMaterialized(PartialEscapeBlockState<?> state, int object, FixedNode materializeBefore, GraphEffectList effects, DebugMetric metric) { if (state.getObjectState(object).isVirtual()) { metric.increment(); VirtualObjectNode virtual = virtualObjects.get(object);
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java Wed Sep 16 14:42:30 2015 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java Wed Sep 16 15:43:24 2015 +0200 @@ -180,6 +180,11 @@ } } + @Override + public boolean ensureMaterialized(VirtualObjectNode virtualObject) { + return closure.ensureMaterialized(state, virtualObject.getObjectId(), position, effects, PartialEscapeClosure.METRIC_MATERIALIZATIONS_UNHANDLED); + } + public void addLock(VirtualObjectNode virtualObject, MonitorIdNode monitorId) { int id = virtualObject.getObjectId(); state.addLock(id, monitorId);