Mercurial > hg > graal-jvmci-8
changeset 6656:5bb9511a6764
first part of PEA refactoring, fixes
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 31 Oct 2012 10:33:01 +0100 |
parents | b01f9c391e17 |
children | 768793150bcd |
files | graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/ObjectState.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java |
diffstat | 3 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java Wed Oct 31 08:20:42 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/BlockState.java Wed Oct 31 10:33:01 2012 +0100 @@ -97,7 +97,7 @@ for (int i = 0; i < fieldState.length; i++) { ObjectState valueObj = objectState(fieldState[i]); if (valueObj != null) { - if (valueObj.getMaterializedValue() == null) { + if (valueObj.isVirtual()) { materializeChangedBefore(fixed, valueObj.virtual, deferred, deferredStores, materializeEffects); } if (deferred.contains(valueObj.virtual)) {
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/ObjectState.java Wed Oct 31 08:20:42 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/ObjectState.java Wed Oct 31 10:33:01 2012 +0100 @@ -98,7 +98,6 @@ } public int getLockCount() { - assert isVirtual(); return lockCount; }
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Oct 31 08:20:42 2012 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Wed Oct 31 10:33:01 2012 +0100 @@ -487,8 +487,9 @@ ObjectState resultState = newState.objectStateOptional(object); if (resultState == null || resultState.isVirtual()) { int virtual = 0; - int lockCount = states.get(0).objectState(object).getLockCount(); - ValueNode singleValue = states.get(0).objectState(object).getMaterializedValue(); + ObjectState startObj = states.get(0).objectState(object); + int lockCount = startObj.getLockCount(); + ValueNode singleValue = startObj.isVirtual() ? null : startObj.getMaterializedValue(); for (BlockState state : states) { ObjectState obj = state.objectState(object); if (obj.isVirtual()) { @@ -519,7 +520,7 @@ } } else { assert virtual == states.size(); - ValueNode[] values = states.get(0).objectState(object).getEntries().clone(); + ValueNode[] values = startObj.getEntries().clone(); PhiNode[] phis = new PhiNode[values.length]; int mismatch = 0; for (int i = 1; i < states.size(); i++) {