extern void pass_group_irs(struct procedure* proc);
extern void pass_instruction_selector(struct procedure* proc);
extern void pass_promote_float_ops(struct procedure* proc);
+extern void pass_register_allocator(struct procedure* proc);
extern void pass_remove_dead_blocks(struct procedure* proc);
extern void pass_split_critical_edges(struct procedure* proc);
-extern void register_allocator(struct procedure* proc);
-
#endif
/* vim: set sw=4 ts=4 expandtab : */
}
}
-void register_allocator(struct procedure* proc)
+void pass_register_allocator(struct procedure* proc)
{
calculate_dominance_graph(proc);
pass_remove_dead_blocks(proc);
procedure_update_bb_graph(proc);
- /* Passes from here on can't alter the BB graph */
+
+ /* Passes from here on can't alter the BB graph without also updating prevs
+ * and nexts. */
print_blocks('2', proc);
pass_convert_stack_ops(proc);
print_blocks('6', proc);
pass_instruction_selector(proc);
-
- register_allocator(proc);
+ pass_register_allocator(proc);
}
static bool collect_outputs_cb(struct ir* ir, void* user)