# HG changeset patch # User Josef Eisl # Date 1416476574 -3600 # Node ID eb2a8bb3c2c44c82030a9ba1d8b7d3b707313aa7 # Parent d68ab3959fec16863c503dfed1095c8f225a4104 SimpleStackSlotAllocator: use an array instead of a HashMap. diff -r d68ab3959fec -r eb2a8bb3c2c4 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/SimpleStackSlotAllocator.java --- 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 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) {