Mercurial > hg > graal-jvmci-8
changeset 18470:eb2a8bb3c2c4
SimpleStackSlotAllocator: use an array instead of a HashMap.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 20 Nov 2014 10:42:54 +0100 |
parents | d68ab3959fec |
children | 7b60f8334af0 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleStackSlotAllocator.java |
diffstat | 1 files changed, 3 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleStackSlotAllocator.java Thu Nov 20 10:32:55 2014 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleStackSlotAllocator.java Thu Nov 20 10:42:54 2014 +0100 @@ -22,15 +22,13 @@ */ package com.oracle.graal.lir.framemap; -import java.util.*; - import com.oracle.graal.api.code.*; import com.oracle.graal.compiler.common.*; public class SimpleStackSlotAllocator implements StackSlotAllocator { public FrameMappingTool allocateStackSlots(FrameMapBuilderImpl builder) { - HashMap<VirtualStackSlot, StackSlot> mapping = new HashMap<>(); + StackSlot[] mapping = new StackSlot[builder.getNumberOfStackSlots()]; for (VirtualStackSlot virtualSlot : builder.getStackSlots()) { final StackSlot slot; if (virtualSlot instanceof SimpleVirtualStackSlot) { @@ -40,9 +38,9 @@ } else { throw GraalInternalError.shouldNotReachHere("Unknown VirtualStackSlot: " + virtualSlot); } - mapping.put(virtualSlot, slot); + mapping[virtualSlot.getId()] = slot; } - return mapping::get; + return v -> mapping[v.getId()]; } protected StackSlot mapSimpleVirtualStackSlot(FrameMapBuilderImpl builder, SimpleVirtualStackSlot virtualStackSlot) {