# include "irmode_t.h"
# include "irgraph_t.h"
# include "type_t.h"
+# include "firmstat.h"
void
init_firm (default_initialize_local_variable_func_t *func)
{
/* initialize all ident stuff */
- id_init ();
+ id_init (1024);
+ /* enhanced statistics, need idents */
+ stat_init();
/* create the type kinds. */
init_tpop ();
/* create an obstack and put all tarvals in a pdeq */
/* Constructs some idents needed. */
init_type();
}
+
+
+void free_firm (void) {
+ int i;
+
+ for (i = 0; i < get_irp_n_irgs(); i++)
+ free_ir_graph(get_irp_irg(i));
+
+ for (i = 0; i < get_irp_n_types(); i++) {
+ free_type_entities(get_irp_type(i));
+ free_type(get_irp_type(i));
+ }
+
+ free_type_entities(get_glob_type());
+ free_ir_prog();
+
+ finish_tarval();
+ finish_op();
+ finish_mode();
+ finish_tpop();
+ id_finish();
+}