From 1851f5e76018ec1df3b55dce6cc9a64c9497bf7a Mon Sep 17 00:00:00 2001 From: bd-912 Date: Fri, 26 Apr 2024 15:50:38 -0600 Subject: Rearrange directory structure --- vaporize/library/RegisterAlloc.java | 71 ------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 vaporize/library/RegisterAlloc.java (limited to 'vaporize/library/RegisterAlloc.java') diff --git a/vaporize/library/RegisterAlloc.java b/vaporize/library/RegisterAlloc.java deleted file mode 100644 index b316b96..0000000 --- a/vaporize/library/RegisterAlloc.java +++ /dev/null @@ -1,71 +0,0 @@ -package vaporize.library; - -import java.util.*; -import misc.*; - -public class RegisterAlloc { - - private LIRDict intervals; - private String[] all_registers; - private Stack free_registers; - private TreeSet active; - - public RegisterAlloc(LIRDict intervals, String[] all_registers) { - this.intervals = intervals; - this.all_registers = all_registers; - this.free_registers = new Stack(); - this.free_registers.addAll(Arrays.asList(this.all_registers)); - this.active = new TreeSet((v1, v2) -> { - int ret; - if (v1.getLastUse() > v2.getLastUse()) - ret = 1; - else if (v1.getLastUse() < v2.getLastUse()) - ret = -1; - else if (v1.equals(v2)) - ret = 0; - else - ret = 1; - return ret; - }); - - MinimalLogger.info(String.format("Starting allocation with registers %s", - this.free_registers.toString())); - - String register; - for (LIRVar interval : this.intervals.getIntervals()) { - this.expireOldIntervals(interval); - if (this.active.size() >= this.all_registers.length) - this.spillAtInterval(interval); - else { - register = this.free_registers.pop(); - interval.assignRegister(register); - this.active.add(interval); - MinimalLogger.info(String.format("Assigning register %s to %s.", - register, - interval.toString())); - - } - } - } - - private void expireOldIntervals(LIRVar interval) { - for (LIRVar active : new TreeSet(this.active)) { - if (active.getLastUse() >= interval.getFirstDef()) - return; - MinimalLogger.info("Register " + active.getAssignedRegister() + " expired!"); - this.active.remove(active); - this.free_registers.push(active.getAssignedRegister()); - } - } - - private void spillAtInterval(LIRVar interval) { - MinimalLogger.severe(String.format("Ran out of free registers, but a spill for %s was not performed!", - interval.toString())); - this.intervals.addSpilledNum(); - // LIRVar spill = this.active.get(this.active.length()-1); - // if (spill.getLastUse() > interval.getLastUse()) { - // ; - // } - } - -} -- cgit v1.2.3