# HG changeset patch # User Thomas Wuerthinger # Date 1426432957 -3600 # Node ID e808c83240358e023b8eb82345f75629bc37f4e1 # Parent 7d933ffe6df6d5098a7189c6ff9a2c72384c4dad Support optional last access location in the scheduler phase. diff -r 7d933ffe6df6 -r e808c8324035 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Sun Mar 15 14:22:50 2015 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Sun Mar 15 16:22:37 2015 +0100 @@ -547,8 +547,9 @@ if (n instanceof FloatingReadNode) { FloatingReadNode floatingReadNode = (FloatingReadNode) n; LocationIdentity locationIdentity = floatingReadNode.getLocationIdentity(); - if (locationIdentity.isMutable()) { - ValueNode lastAccessLocation = floatingReadNode.getLastLocationAccess().asNode(); + MemoryNode lastLocationAccess = floatingReadNode.getLastLocationAccess(); + if (locationIdentity.isMutable() && lastLocationAccess != null) { + ValueNode lastAccessLocation = lastLocationAccess.asNode(); if (nodeToBlock.get(lastAccessLocation) == b && lastAccessLocation != beginNode) { // This node's last access location is within this block. Add to watch list // when processing the last access location.