#include #include #include #include void optimize(struct fn *f) { printf("\n// initial:\n"); dump_function(f); /* unreachability is done in several steps I guess */ size_t ri = ssa(f); printf("\n// after SSA:\n"); dump_function(f); correct(f, ri); printf("\n// corrections:\n"); dump_function(f); abi0(f); printf("\n// after abi0:\n"); dump_function(f); /* ... do more stuff ... */ regalloc(f); printf("\n// after regalloc:\n"); dump_function(f); }