ack/mach/proto/mcg/procedure.c
David Given bb9aa030a5 Procedure compilation now happens after the entire EM file has been read in (so
that we can look inside data blocks which might be defined in the future...
sigh, csa and csb). csa and csb no longer generate invalid IR.
2016-09-24 01:04:00 +02:00

38 lines
702 B
C

#include "mcg.h"
static void print_blocks(char k, struct procedure* proc)
{
int i;
tracef(k, "%c: procedure %s\n", k, proc->name);
for (int i=0; i<proc->blocks_count; i++)
{
struct basicblock* bb = proc->blocks[i];
int j;
tracef(k, "%c:\n", k);
tracef(k, "%c: %sBLOCK: %s\n", k,
bb->is_fake ? "FAKE " : "",
bb->name);
for (int j=0; j<bb->irs_count; j++)
ir_print(k, bb->irs[j]);
}
}
void procedure_compile(struct procedure* proc)
{
int i;
print_blocks('1', proc);
pass_eliminate_trivial_blocks(proc);
pass_remove_dead_blocks(proc);
pass_convert_stack_ops(proc);
print_blocks('2', proc);
}
/* vim: set sw=4 ts=4 expandtab : */