Mercurial > hg > graal-compiler
changeset 22946:baf68ed1ccbc
PEA: reset aliases for phis
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Wed, 04 Nov 2015 13:04:25 +0100 |
parents | 249fe54d146a |
children | 76b25ae37990 |
files | graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Nov 04 13:03:46 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Nov 04 13:04:25 2015 +0100 @@ -414,6 +414,8 @@ if (alias instanceof VirtualObjectNode) { VirtualObjectNode virtual = (VirtualObjectNode) alias; addAndMarkAlias(virtual, phi); + } else { + aliases.set(phi, null); } } } @@ -633,6 +635,7 @@ } for (PhiNode phi : getPhis()) { + aliases.set(phi, null); if (hasVirtualInputs.isMarked(phi) && phi instanceof ValuePhiNode) { materialized |= processPhi((ValuePhiNode) phi, states, virtualObjTemp); } @@ -850,7 +853,6 @@ * @return true if materialization happened during the merge, false otherwise */ private boolean processPhi(ValuePhiNode phi, PartialEscapeBlockState<?>[] states, int[] mergedVirtualObjects) { - aliases.set(phi, null); // determine how many inputs are virtual and if they're all the same virtual object int virtualInputs = 0;