compilers/imcc/imc.c
Routines for handling imc_units,
which represent subs.
Moved all register allocation and spill code to reg_alloc.c
void imc_compile_all_units
- Compiles all imc_units,
and free all memory of instructions and structures afterwards.
void imc_compile_unit
- Compiles each unit in IMCC.
This is the main loop of the compiler; it operates on a single compilation unit at a time.
void imc_cleanup
- Cleans up the compiler state in preparation for another compiler invocation.
static IMC_Unit *imc_new_unit
- Creates a new IMC_Unit of the given IMC_Unit_Type
t
.
IMC_Unit *imc_open_unit
- Creates a new IMC_Unit and "open" it for construction.
This sets the current state of the parser.
You can close the unit later while retaining all the current state.
void imc_close_unit
- Closes a unit from compilation.
This does not destroy the unit,
but leaves it on the list of units.
static void imc_free_unit
- Frees an IMC_Unit and all of its associated memory.