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) {