# HG changeset patch # User Lukas Stadler # Date 1353414982 -3600 # Node ID 94596bbec6f06ef2225904f9077074cd094e5af3 # Parent 51b6e594b0cd258ce01221d42d16430b67107462 provide MetaAccessProvider to EscapeAnalyzable diff -r 51b6e594b0cd -r 94596bbec6f0 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java --- 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) { diff -r 51b6e594b0cd -r 94596bbec6f0 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java --- 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()); diff -r 51b6e594b0cd -r 94596bbec6f0 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeAnalyzable.java --- 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); } diff -r 51b6e594b0cd -r 94596bbec6f0 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java --- 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)}; } diff -r 51b6e594b0cd -r 94596bbec6f0 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java --- 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) {