# HG changeset patch # User Lukas Stadler # Date 1354014641 -3600 # Node ID adf5c101bc4b86d192a01e2a0c57c6d0938d09b2 # Parent 742ec0f0455993bd24bb99bdef0af7dabfe38ca3# Parent dd81042f4eb150ea21d5237a31a0449ffd79f8f5 Merge diff -r dd81042f4eb1 -r adf5c101bc4b 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 27 11:21:48 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Nov 27 12:10:41 2012 +0100 @@ -102,46 +102,6 @@ @Override public ObjectDesc[] getAllocations(long nextVirtualId, MetaAccessProvider metaAccess) { - if (shouldRevirtualize(this)) { - return new ObjectDesc[] {new ObjectDesc(virtualObject, values.toArray(new ValueNode[values.size()]), lockCount)}; - } - return null; - } - - private boolean shouldRevirtualize(MaterializeObjectNode materializeObjectNode) { - FixedWithNextNode end = materializeObjectNode; - do { - Node next = end.next(); - if (next instanceof MaterializeObjectNode) { - if (!shouldRevirtualize((MaterializeObjectNode) next)) { - return false; - } - end = (FixedWithNextNode) next; - } else if (next instanceof CyclicMaterializeStoreNode) { - end = (FixedWithNextNode) next; - } else { - break; - } - } while (true); - FixedNode suffix = end.next(); - if (suffix instanceof EndNode) { - for (PhiNode phi : ((EndNode) suffix).merge().phis()) { - int materialized = 0; - boolean used = false; - for (Node input : phi.inputs()) { - if (input instanceof MaterializeObjectNode) { - materialized++; - } - if (input == materializeObjectNode) { - used = true; - } - } - if (used && materialized != phi.valueCount()) { - return false; - } - } - } - - return true; + return new ObjectDesc[] {new ObjectDesc(virtualObject, values.toArray(new ValueNode[values.size()]), lockCount)}; } }