changeset 19862:e808c8324035

Support optional last access location in the scheduler phase.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sun, 15 Mar 2015 16:22:37 +0100
parents 7d933ffe6df6
children bd953f563517 c3d9637c98ed
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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.