# HG changeset patch # User Lukas Stadler # Date 1368535718 -7200 # Node ID a7376cc486ff4b5d1f148caf5a7b8a4acaf2de1b # Parent 69ac495742229537cf260b1b620bc40f7de49011 don't overwrite default entries when lowering CommitAllocationNodes diff -r 69ac49574222 -r a7376cc486ff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- 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))); + } } } }