summaryrefslogtreecommitdiff
path: root/chapter24/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'chapter24/src/test/java/com')
-rw-r--r--chapter24/src/test/java/com/seaofnodes/simple/Simple.java58
1 files changed, 17 insertions, 41 deletions
diff --git a/chapter24/src/test/java/com/seaofnodes/simple/Simple.java b/chapter24/src/test/java/com/seaofnodes/simple/Simple.java
index be582a64..18804ebd 100644
--- a/chapter24/src/test/java/com/seaofnodes/simple/Simple.java
+++ b/chapter24/src/test/java/com/seaofnodes/simple/Simple.java
@@ -25,10 +25,8 @@ public class Simple {
static final int DUMP_FINAL = 1<<16;
- static final int DUMP_DOT = 1<<29;
static final int DUMP_PASS_NAME = 1<<30;
static final int DUMP_AFTER_ALL = 0xff | DUMP_PASS_NAME;
- static final int DUMP_DOT_AFTER_ALL = 0xff | DUMP_DOT;
static final int DUMP_DISASSEMBLE = 1<<31;
@@ -47,7 +45,6 @@ Options:
--dump-after-reg-alloc - dump intermediate representation after register allocation pass
--dump-after-encode - dump intermediate representation after encoding pass
--dump-after-all - dump intermediate representation after all passes
- --dot - dump grapical representation of intermediate code into *.dot file(s)
-S - dump generated assembler code
--eval - evaluate the compiled code in emulator
--run - run the compiled code natively; this is the default
@@ -78,44 +75,24 @@ Options:
static void dump(CodeGen code, int dump, int pass) {
if ((dump & pass) != 0) {
- if ((dump & DUMP_DOT) != 0) {
- String fn = switch (pass) {
- case DUMP_AFTER_PARSE -> "01-parse.dot";
- case DUMP_AFTER_OPTO -> "02-opto.dot";
- case DUMP_AFTER_TYPE_CHECK -> "03-type_check.dot";
- case DUMP_AFTER_LOOP_TREE -> "04-loop_tree.dot";
- case DUMP_AFTER_SELECT -> "05-instr_select.dot";
- case DUMP_AFTER_GCM -> "06-gcm.dot";
- case DUMP_AFTER_LOCAL_SCHED -> "07-local_sched.dot";
- case DUMP_AFTER_REG_ALLOC -> "08-reg_allos.dot";
- case DUMP_AFTER_ENCODE -> "09-local_sched.dot";
- case DUMP_FINAL -> "10-final.dot";
- default -> throw Utils.TODO();
- };
-
- try {
- Files.writeString(Path.of(fn),
- new GraphVisualizer().generateDotOutput(code._stop, null, null));
- } catch(IOException e) { throw bad("Cannot write DOT file"); }
- } else {
- if ((dump & DUMP_PASS_NAME) != 0) {
- System.err.println(switch (pass) {
- case DUMP_AFTER_PARSE -> "After Parse:";
- case DUMP_AFTER_OPTO -> "After OPTO:";
- case DUMP_AFTER_TYPE_CHECK -> "After Type Check:";
- case DUMP_AFTER_LOOP_TREE -> "After Loop Tree:";
- case DUMP_AFTER_SELECT -> "After Code Selection:";
- case DUMP_AFTER_GCM -> "After GCM:";
- case DUMP_AFTER_LOCAL_SCHED -> "After Local Scheduling:";
- case DUMP_AFTER_REG_ALLOC -> "After Register Allocation:";
- case DUMP_AFTER_ENCODE -> "After Encoding:";
- case DUMP_FINAL -> "Final:";
- default -> throw Utils.TODO();
- });
- }
-
- System.err.println(IRPrinter.prettyPrint(code._stop, 9999));
+ if ((dump & DUMP_PASS_NAME) != 0) {
+ System.err.println(switch (pass) {
+ case DUMP_AFTER_PARSE -> "After Parse:";
+ case DUMP_AFTER_OPTO -> "After OPTO:";
+ case DUMP_AFTER_TYPE_CHECK -> "After Type Check:";
+ case DUMP_AFTER_LOOP_TREE -> "After Loop Tree:";
+ case DUMP_AFTER_SELECT -> "After Code Selection:";
+ case DUMP_AFTER_GCM -> "After GCM:";
+ case DUMP_AFTER_LOCAL_SCHED -> "After Local Scheduling:";
+ case DUMP_AFTER_REG_ALLOC -> "After Register Allocation:";
+ case DUMP_AFTER_ENCODE -> "After Encoding:";
+ case DUMP_FINAL -> "Final:";
+ default -> throw Utils.TODO();
+ });
}
+
+ System.err.println(IRPrinter.prettyPrint(code._stop, 9999));
+
}
}
@@ -183,7 +160,6 @@ Options:
case "--dump-after-reg-alloc": dump |= DUMP_AFTER_REG_ALLOC; break;
case "--dump-after-encode": dump |= DUMP_AFTER_ENCODE; break;
case "--dump-after-all": dump |= DUMP_AFTER_ALL; break;
- case "--dot": dump |= DUMP_DOT; break;
case "-S": dump |= DUMP_DISASSEMBLE; break;
case "--eval": do_eval = true ; do_run = false; break;
case "--run": do_run = true ; break;