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) {