Mercurial > hg > truffle
changeset 7007:94596bbec6f0
provide MetaAccessProvider to EscapeAnalyzable
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 20 Nov 2012 13:36:22 +0100 |
parents | 51b6e594b0cd |
children | 9f9068a65a83 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeAnalyzable.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java |
diffstat | 5 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java Tue Nov 20 13:25:28 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java Tue Nov 20 13:36:22 2012 +0100 @@ -105,7 +105,7 @@ } @Override - public ObjectDesc[] getAllocations(long nextVirtualId) { + public ObjectDesc[] getAllocations(long nextVirtualId, MetaAccessProvider metaAccess) { if (length().asConstant() != null) { final int constantLength = length().asConstant().asInt(); if (constantLength >= 0 && constantLength < MaximumEscapeAnalysisArrayLength) {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Tue Nov 20 13:25:28 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Tue Nov 20 13:36:22 2012 +0100 @@ -100,7 +100,7 @@ } @Override - public ObjectDesc[] getAllocations(long nextVirtualId) { + public ObjectDesc[] getAllocations(long nextVirtualId, MetaAccessProvider metaAccess) { if (instanceClass != null) { assert !instanceClass().isArrayClass(); ResolvedJavaField[] fields = getEscapeFields(instanceClass());
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeAnalyzable.java Tue Nov 20 13:25:28 2012 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeAnalyzable.java Tue Nov 20 13:36:22 2012 +0100 @@ -22,6 +22,7 @@ */ package com.oracle.graal.nodes.spi; +import com.oracle.graal.api.meta.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.virtual.*; @@ -40,5 +41,5 @@ } } - ObjectDesc[] getAllocations(long nextVirtualId); + ObjectDesc[] getAllocations(long nextVirtualId, MetaAccessProvider metaAccess); }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Nov 20 13:25:28 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Nov 20 13:36:22 2012 +0100 @@ -101,7 +101,7 @@ } @Override - public ObjectDesc[] getAllocations(long nextVirtualId) { + public ObjectDesc[] getAllocations(long nextVirtualId, MetaAccessProvider metaAccess) { if (shouldRevirtualize(this)) { return new ObjectDesc[] {new ObjectDesc(virtualObject, values.toArray(new ValueNode[values.size()]), lockCount)}; }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Tue Nov 20 13:25:28 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Tue Nov 20 13:36:22 2012 +0100 @@ -72,10 +72,12 @@ private int virtualIds = 0; private final VirtualizerToolImpl tool; + private final MetaAccessProvider metaAccess; public PartialEscapeClosure(NodeBitMap usages, SchedulePhase schedule, MetaAccessProvider metaAccess) { this.usages = usages; this.schedule = schedule; + this.metaAccess = metaAccess; tool = new VirtualizerToolImpl(effects, usages, metaAccess); } @@ -96,7 +98,7 @@ for (Node node : nodeList) { ObjectDesc[] newAllocations = null; if (node instanceof EscapeAnalyzable) { - newAllocations = ((EscapeAnalyzable) node).getAllocations(virtualIds); + newAllocations = ((EscapeAnalyzable) node).getAllocations(virtualIds, metaAccess); } if (newAllocations != null) {