Mercurial > hg > graal-compiler
changeset 19949:efa840053649
Properly handle Guard usages during on stack replacement
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 18 Mar 2015 11:38:38 -0700 |
parents | f73a6e260e0c |
children | 212566f9cd69 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Wed Mar 18 10:07:47 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Wed Mar 18 11:38:38 2015 -0700 @@ -76,6 +76,7 @@ } LoopTransformations.peel(osrLoop); + osr.replaceAtUsages(InputType.Guard, AbstractBeginNode.prevBegin((FixedNode) osr.predecessor())); for (Node usage : osr.usages().snapshot()) { ProxyNode proxy = (ProxyNode) usage; proxy.replaceAndDelete(proxy.value()); @@ -107,6 +108,8 @@ assert value == null || value instanceof OSRLocalNode; } } + osr.replaceAtUsages(InputType.Guard, osrStart); + assert osr.usages().isEmpty(); GraphUtil.killCFG(start);