Mercurial > hg > truffle
changeset 6307:d7f67808f970
Create ValueProxy nodes where necessary during ReadElimination
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Mon, 03 Sep 2012 12:52:22 +0200 |
parents | 2a819543cc45 |
children | 1bb742086acd |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ReadEliminationPhase.java |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ReadEliminationPhase.java Thu Aug 30 15:33:08 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ReadEliminationPhase.java Mon Sep 03 12:52:22 2012 +0200 @@ -27,6 +27,7 @@ import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; +import com.oracle.graal.nodes.PhiNode.PhiType; import com.oracle.graal.nodes.extended.*; public class ReadEliminationPhase extends Phase { @@ -81,7 +82,10 @@ return exisiting; } if (lastLocationAccess instanceof ValueProxyNode) { - return getValue(n, ((ValueProxyNode) lastLocationAccess).value(), nodeMap); + ValueProxyNode proxy = (ValueProxyNode) lastLocationAccess; + ValueNode value = getValue(n, proxy.value(), nodeMap); + assert proxy.type() == PhiType.Value; + return lastLocationAccess.graph().add(new ValueProxyNode(value, proxy.proxyPoint(), PhiType.Value)); } if (lastLocationAccess instanceof WriteNode) { return ((WriteNode) lastLocationAccess).value();