From df648047d1899345dd8b2d82f78b480712d4d8d6 Mon Sep 17 00:00:00 2001 From: bd-912 Date: Mon, 22 Apr 2024 23:12:05 -0600 Subject: Implement register allocation (no spill) --- V2VM.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'V2VM.java') diff --git a/V2VM.java b/V2VM.java index f34f5fd..1dfa4cf 100644 --- a/V2VM.java +++ b/V2VM.java @@ -12,6 +12,7 @@ import cs132.vapor.ast.VInstr; import java.io.InputStreamReader; import java.io.IOException; import java.io.PrintStream; +import java.util.Arrays; import cfg.*; import misc.*; @@ -30,11 +31,15 @@ public class V2VM { VaporProgram prog = parseVapor(System.in, System.out); - MinimalLogger.info(String.format("Generating CFGs...")); + MinimalLogger.info(String.format("Generating Intervals...")); LIRVisitor lv = new LIRVisitor(prog, strProg); ArrayList lvs = lv.getLIRs(); - // MinimalLogger.info(String.format("Spilling Everywhere...")); - // SpillEverywhere spill = new SpillEverywhere(prog, strProg); + + for (LIRDict interval : lvs) { + MinimalLogger.info(String.format("Starting Linear Allocation for %s...", + interval.getFunction())); + new RegisterAlloc(interval, Arrays.copyOfRange(prog.registers, 6, 22)); + } } catch (IOException e) { System.out.println(e.toString()); -- cgit v1.2.3