# HG changeset patch # User Josef Eisl # Date 1415721212 -3600 # Node ID de99ed0b18ca833eb0af07aac8b418b01874e4fe # Parent 7ce389a852778bac016864beb8b08ecc57dced7b Interval: allow to change VirtualStackSlot to StackSlot. diff -r 7ce389a85277 -r de99ed0b18ca graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java --- 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; }