changeset 18438:de99ed0b18ca

Interval: allow to change VirtualStackSlot to StackSlot.
author Josef Eisl <josef.eisl@jku.at>
date Tue, 11 Nov 2014 16:53:32 +0100
parents 7ce389a85277
children 180b55c6a189
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java	Tue Nov 11 16:51:41 2014 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java	Tue Nov 11 16:53:32 2014 +0100
@@ -546,7 +546,7 @@
         } else if (isIllegal(newLocation)) {
             assert canMaterialize();
         } else {
-            assert this.location == null || isRegister(this.location) : "cannot re-assign location for " + this;
+            assert this.location == null || isRegister(this.location) || (isVirtualStackSlot(this.location) && isStackSlot(newLocation)) : "cannot re-assign location for " + this;
             assert isStackSlotValue(newLocation);
             assert !newLocation.getLIRKind().equals(LIRKind.Illegal);
             assert newLocation.getLIRKind().equals(this.kind);
@@ -620,7 +620,7 @@
     }
 
     void setSpillSlot(StackSlotValue slot) {
-        assert splitParent().spillSlot == null : "connot overwrite existing spill slot";
+        assert splitParent().spillSlot == null || (isVirtualStackSlot(splitParent().spillSlot) && isStackSlot(slot)) : "connot overwrite existing spill slot";
         splitParent().spillSlot = slot;
     }