# HG changeset patch # User Bernhard Urban # Date 1382558788 -7200 # Node ID 2df56730c5a6d450067dbe9f3a71d1a2048f03e3 # Parent e1f40574c309b03c0eb3315c5d980e1a8360a660 UnsafeArrayCopyNode: try to be more precise about killed location diff -r e1f40574c309 -r 2df56730c5a6 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeArrayCopyNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeArrayCopyNode.java Wed Oct 23 22:06:27 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/UnsafeArrayCopyNode.java Wed Oct 23 22:06:28 2013 +0200 @@ -112,6 +112,9 @@ @Override public LocationIdentity getLocationIdentity() { + if (elementKind != null) { + return NamedLocationIdentity.getArrayLocation(elementKind); + } return ANY_LOCATION; } diff -r e1f40574c309 -r 2df56730c5a6 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Wed Oct 23 22:06:27 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Wed Oct 23 22:06:28 2013 +0200 @@ -800,7 +800,7 @@ // check if some node in snippet graph also kills the same location LocationIdentity locationIdentity = ((MemoryCheckpoint.Single) replacee).getLocationIdentity(); if (locationIdentity == ANY_LOCATION) { - assert !(memoryMap.getLastLocationAccess(ANY_LOCATION) instanceof StartNode); + assert !(memoryMap.getLastLocationAccess(ANY_LOCATION) instanceof StartNode) : replacee + " kills ANY_LOCATION, but snippet does not"; } assert kills.contains(locationIdentity) : replacee + " kills " + locationIdentity + ", but snippet doesn't contain a kill to this location"; return true;