Mercurial > hg > truffle
diff graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java @ 19359:afe80ca4b0f0
cache EscapeObjectStates during PEA
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Fri, 13 Feb 2015 17:42:58 +0100 |
parents | a657c513e128 |
children | 9d5003af91f5 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Fri Feb 13 17:44:27 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Fri Feb 13 17:42:58 2015 +0100 @@ -108,14 +108,14 @@ add("add virtual mapping", new Effect() { @Override public void apply(StructuredGraph graph, ArrayList<Node> obsoleteNodes) { - assert node.isAlive() && !state.isAlive() && !state.isDeleted(); + assert node.isAlive() && !state.isDeleted(); FrameState stateAfter = node; for (int i = 0; i < stateAfter.virtualObjectMappingCount(); i++) { if (stateAfter.virtualObjectMappingAt(i).object() == state.object()) { stateAfter.virtualObjectMappings().remove(i); } } - stateAfter.addVirtualObjectMapping(graph.unique(state)); + stateAfter.addVirtualObjectMapping(state.isAlive() ? state : graph.unique(state)); } @Override