add_to_sched(&be, irn);
}
+ ir_nodeset_destroy(cands);
+
if (selector->finish_block)
selector->finish_block(be.selector_block_env);
}
void ir_finish(void)
{
+#ifdef DEBUG_libfirm
+ firm_finish_debugger();
+#endif
free_ir_prog();
finish_tarval();
finish_mode();
finish_tpop();
+ firm_finish_mangle();
finish_ident();
firm_be_finish();
firm_debug_break();
}
+void firm_finish_debugger(void)
+{
+ del_set(bp_numbers);
+ del_set(bp_idents);
+}
+
/**
* A gdb helper function to print firm objects.
*/
/** Creates the debugger tables. */
void firm_init_debugger(void);
+void firm_finish_debugger(void);
+
/**
* @defgroup external_debug helper functions for debuggers
*
/** initializes the name mangling code */
void firm_init_mangle(void);
+void firm_finish_mangle(void);
+
#endif
{
obstack_init(&mangle_obst);
}
+
+void firm_finish_mangle(void)
+{
+ obstack_free(&mangle_obst, NULL);
+}
info->default_block = targets[pn_Switch_default];
info->cases = cases;
+ free(targets);
}
static void normalize_table(ir_node *switchn, ir_mode *new_mode,