# HG changeset patch # User Andreas Woess # Date 1371648577 -7200 # Node ID 97e8cabe9064de191fe9a1a29fa7fdd4b22face3 # Parent 9d0c16df0bc7ede90d32f860f8340dba944cff15 fix canonicalization of UnsafeStoreNode: preserve stateAfter diff -r 9d0c16df0bc7 -r 97e8cabe9064 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java Wed Jun 19 15:07:39 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java Wed Jun 19 15:29:37 2013 +0200 @@ -26,7 +26,6 @@ import static com.oracle.graal.graph.UnsafeAccess.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.nodes.spi.*; @@ -102,8 +101,9 @@ if (constantOffset != 0) { int intDisplacement = (int) (constantOffset + displacement()); if (constantOffset == intDisplacement) { - Graph graph = this.graph(); - return graph.add(new UnsafeStoreNode(this.stamp(), object(), intDisplacement, graph.unique(ConstantNode.forInt(0, graph)), value(), accessKind())); + UnsafeStoreNode unsafeStoreNode = graph().add(new UnsafeStoreNode(stamp(), object(), intDisplacement, ConstantNode.forInt(0, graph()), value(), accessKind())); + unsafeStoreNode.setStateAfter(stateAfter()); + return unsafeStoreNode; } } else if (object().stamp() instanceof ObjectStamp) { // TODO (gd) remove that once // UnsafeAccess only have an @@ -113,7 +113,9 @@ ResolvedJavaType receiverType = receiverStamp.type(); ResolvedJavaField field = receiverType.findInstanceFieldWithOffset(displacement()); if (field != null) { - return this.graph().add(new StoreFieldNode(object(), field, value())); + StoreFieldNode storeFieldNode = graph().add(new StoreFieldNode(object(), field, value())); + storeFieldNode.setStateAfter(stateAfter()); + return storeFieldNode; } } }