Mercurial > hg > truffle
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; }