Mercurial > hg > graal-compiler
changeset 14610:aef9e4224076
refactored state cleaning in PEA MergeProcessor
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Wed, 19 Mar 2014 09:08:22 +0100 |
parents | a65db4b0d185 |
children | 1d853e629891 1617b1e25d31 |
files | graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java |
diffstat | 1 files changed, 5 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Tue Mar 18 16:45:07 2014 -0700 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Mar 19 09:08:22 2014 +0100 @@ -335,15 +335,6 @@ ObjectState[] objStates = new ObjectState[states.size()]; boolean materialized; do { - Iterator<Map.Entry<VirtualObjectNode, ObjectState>> iter = newState.objectStates.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry<VirtualObjectNode, ObjectState> entry = iter.next(); - if (!virtualObjTemp.contains(entry.getValue())) { - iter.remove(); - } - } - mergeEffects.clear(); - afterMergeEffects.clear(); materialized = false; for (VirtualObjectNode object : virtualObjTemp) { for (int i = 0; i < objStates.length; i++) { @@ -389,6 +380,11 @@ materialized |= processPhi(phi, states, virtualObjTemp); } } + if (materialized) { + newState.objectStates.clear(); + mergeEffects.clear(); + afterMergeEffects.clear(); + } } while (materialized); }