Routines for handling imc_units, which represent subs.

Moved all register allocation and spill code to reg_alloc.c

Functions ^

void imc_compile_all_units

Compile all imc_units, and free all memory of instructions and structures afterwards.

void imc_compile_unit

imc_compile_unit is the main loop of the IMC compiler for each unit. It operates on a single compilation unit at a time.

void imc_cleanup

Any activity required to cleanup the compiler state and be ready for a new compiler invocation goes here.

static IMC_Unit *imc_new_unit

Create a new IMC_Unit.

IMC_Unit *imc_open_unit

Create a new IMC_Unit and "open" it for construction. This sets the current state of the parser. The unit can be closed later retaining all the current state.

void imc_close_unit

Close a unit from compilation. Does not destroy the unit, leaves it on the list.

static void imc_free_unit

Free all memory allocated of an IMC_Unit structure.