Mercurial > hg > truffle
changeset 9687:a7376cc486ff
don't overwrite default entries when lowering CommitAllocationNodes
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 14 May 2013 14:48:38 +0200 |
parents | 69ac49574222 |
children | 0d0645267c32 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue May 14 14:47:16 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue May 14 14:48:38 2013 +0200 @@ -892,7 +892,9 @@ if (value instanceof VirtualObjectNode) { value = allocations[commit.getVirtualObjects().indexOf(value)]; } - graph.addBeforeFixed(commit, graph.add(new WriteNode(newObject, value, createFieldLocation(graph, (HotSpotResolvedJavaField) instance.field(i)), WriteBarrierType.NONE))); + if (!(value.isConstant() && value.asConstant().isDefaultForKind())) { + graph.addBeforeFixed(commit, graph.add(new WriteNode(newObject, value, createFieldLocation(graph, (HotSpotResolvedJavaField) instance.field(i)), WriteBarrierType.NONE))); + } } } else { VirtualArrayNode array = (VirtualArrayNode) virtual; @@ -904,7 +906,10 @@ assert indexOf != -1 : commit + " " + value; value = allocations[indexOf]; } - graph.addBeforeFixed(commit, graph.add(new WriteNode(newObject, value, createArrayLocation(graph, element.getKind(), ConstantNode.forInt(i, graph)), WriteBarrierType.NONE))); + if (!(value.isConstant() && value.asConstant().isDefaultForKind())) { + graph.addBeforeFixed(commit, + graph.add(new WriteNode(newObject, value, createArrayLocation(graph, element.getKind(), ConstantNode.forInt(i, graph)), WriteBarrierType.NONE))); + } } } }