Mercurial > hg > truffle
changeset 7078:a43f590e48dd
Merge.
author | Christian Haeubl <haeubl@ssw.jku.at> |
---|---|
date | Tue, 27 Nov 2012 13:02:43 +0100 |
parents | ca17d81cfa4b (current diff) adf5c101bc4b (diff) |
children | 57d96c2a5950 |
files | |
diffstat | 1 files changed, 1 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- 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)}; } }