Mercurial > hg > truffle
changeset 18469:d68ab3959fec
Remove static id from VirtualStackSlot.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 20 Nov 2014 10:32:55 +0100 |
parents | 6014e40b07f8 |
children | eb2a8bb3c2c4 |
files | graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualStackSlot.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMapBuilderImpl.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleVirtualStackSlot.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/VirtualStackSlotRange.java |
diffstat | 4 files changed, 18 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualStackSlot.java Wed Nov 19 17:31:31 2014 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualStackSlot.java Thu Nov 20 10:32:55 2014 +0100 @@ -27,12 +27,11 @@ public abstract class VirtualStackSlot extends StackSlotValue { private static final long serialVersionUID = 2823688688873398219L; - private static int idCounter = 0; private final int id; - public VirtualStackSlot(LIRKind lirKind) { + public VirtualStackSlot(int id, LIRKind lirKind) { super(lirKind); - id = idCounter++; + this.id = id; } public int getId() {
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMapBuilderImpl.java Wed Nov 19 17:31:31 2014 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMapBuilderImpl.java Thu Nov 20 10:32:55 2014 +0100 @@ -39,6 +39,7 @@ protected final FrameMap frameMap; private final List<VirtualStackSlot> stackSlots; private final List<CallingConvention> calls; + private int numStackSlots; public FrameMapBuilderImpl(FrameMap frameMap, CodeCacheProvider codeCache, RegisterConfig registerConfig) { assert registerConfig != null : "No register config!"; @@ -48,12 +49,13 @@ this.stackSlots = new ArrayList<>(); this.calls = new ArrayList<>(); this.mappables = new ArrayList<>(); + this.numStackSlots = 0; } private final List<FrameMappable> mappables; public VirtualStackSlot allocateSpillSlot(LIRKind kind) { - SimpleVirtualStackSlot slot = new SimpleVirtualStackSlot(kind); + SimpleVirtualStackSlot slot = new SimpleVirtualStackSlot(numStackSlots++, kind); stackSlots.add(slot); return slot; } @@ -65,7 +67,7 @@ if (outObjectStackSlots != null) { throw GraalInternalError.unimplemented(); } - VirtualStackSlotRange slot = new VirtualStackSlotRange(slots, objects); + VirtualStackSlotRange slot = new VirtualStackSlotRange(numStackSlots++, slots, objects); stackSlots.add(slot); return slot; } @@ -78,6 +80,14 @@ return codeCache; } + /** + * Returns the number of {@link VirtualStackSlot}s created by this {@link FrameMapBuilder}. Can + * be used as an upper bound for an array indexed by {@link VirtualStackSlot#getId()}. + */ + public int getNumberOfStackSlots() { + return numStackSlots; + } + public void callsMethod(CallingConvention cc) { calls.add(cc); }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleVirtualStackSlot.java Wed Nov 19 17:31:31 2014 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleVirtualStackSlot.java Thu Nov 20 10:32:55 2014 +0100 @@ -32,8 +32,8 @@ private static final long serialVersionUID = 7654295701165421750L; - public SimpleVirtualStackSlot(LIRKind lirKind) { - super(lirKind); + public SimpleVirtualStackSlot(int id, LIRKind lirKind) { + super(id, lirKind); } }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/VirtualStackSlotRange.java Wed Nov 19 17:31:31 2014 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/VirtualStackSlotRange.java Thu Nov 20 10:32:55 2014 +0100 @@ -37,8 +37,8 @@ private final BitSet objects; private final int slots; - public VirtualStackSlotRange(int slots, BitSet objects) { - super(LIRKind.reference(Kind.Object)); + public VirtualStackSlotRange(int id, int slots, BitSet objects) { + super(id, LIRKind.reference(Kind.Object)); this.slots = slots; this.objects = (BitSet) objects.clone(); }