diff options
author | bd-912 <bdunahu@colostate.edu> | 2024-04-22 23:12:05 -0600 |
---|---|---|
committer | bd-912 <bdunahu@colostate.edu> | 2024-04-22 23:12:05 -0600 |
commit | df648047d1899345dd8b2d82f78b480712d4d8d6 (patch) | |
tree | bb001bc35ad42409287bc1c8bb470255d03bde4c /V2VM.java | |
parent | 110b4f031aea36445250d79c7257a57f15fb7b82 (diff) |
Implement register allocation (no spill)
Diffstat (limited to 'V2VM.java')
-rw-r--r-- | V2VM.java | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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<LIRDict> 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()); |