# HG changeset patch # User Christian Haeubl # Date 1354017763 -3600 # Node ID a43f590e48dd603db0aaeae5b99c16218870519d # Parent ca17d81cfa4b8e872f7967e10d9e8d38364863cd# Parent adf5c101bc4b86d192a01e2a0c57c6d0938d09b2 Merge. diff -r ca17d81cfa4b -r a43f590e48dd 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 12:16:47 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Nov 27 13:02:43 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)}; } }