From f50541ed3b2df366e5d30708392194c6aaab2e2d Mon Sep 17 00:00:00 2001 From: David Given Date: Mon, 12 Dec 2016 23:54:59 +0100 Subject: [PATCH] Wire up the new passes. --- mach/proto/mcg/mcg.h | 1 - mach/proto/mcg/procedure.c | 23 +++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/mach/proto/mcg/mcg.h b/mach/proto/mcg/mcg.h index b0c897eb1..4c218e942 100644 --- a/mach/proto/mcg/mcg.h +++ b/mach/proto/mcg/mcg.h @@ -105,7 +105,6 @@ extern void tb_fileend(void); extern void tb_procedure(void); extern void tb_regvar(struct procedure* proc, arith offset, int size, int type, int priority); -extern void pass_convert_inputs_to_phis(void); extern void pass_convert_locals_to_ssa(void); extern void pass_convert_nonlocal_phis(void); extern void pass_convert_stack_ops(void); diff --git a/mach/proto/mcg/procedure.c b/mach/proto/mcg/procedure.c index 4d5eb71bd..393b8a1cc 100644 --- a/mach/proto/mcg/procedure.c +++ b/mach/proto/mcg/procedure.c @@ -176,35 +176,38 @@ void procedure_compile(struct procedure* proc) pass_split_critical_edges(); update_graph_data(); + if (cfg_dot_file) + write_cfg_graph(proc->name); + if (dominance_dot_file) + write_dominance_graph(proc->name); + /* Passes from here on can't alter the BB graph without also updating prevs * and nexts (and then calling update_graph_data()). */ print_blocks('3'); pass_wire_up_return_values(); pass_convert_stack_ops(); - print_blocks('4'); pass_convert_locals_to_ssa(); - print_blocks('5'); + print_blocks('4'); + pass_convert_inputs_to_phis(); + pass_convert_nonlocal_phis(); pass_remove_dead_phis(); + print_blocks('5'); pass_infer_types(); print_blocks('6'); - pass_instruction_selector(); print_hops('7'); - pass_find_phi_congruence_groups(); - pass_live_vreg_analysis(); + pass_split_live_ranges(); + pass_determine_vreg_usage(); print_hops('8'); + + pass_live_vreg_analysis(); pass_register_allocator(); pass_add_prologue_epilogue(); print_hops('9'); emit_procedure(proc); - if (cfg_dot_file) - write_cfg_graph(proc->name); - if (dominance_dot_file) - write_dominance_graph(proc->name); - heap_free(&proc_heap); } -- 2.34.1