res->max_irg_idx = 0;
res->max_node_nr = 0;
#ifndef NDEBUG
- res->reserved_resources = IR_RESOURCE_NONE;
+ res->reserved_resources = IRP_RESOURCE_NONE;
#endif
return res;
set_class_final(irp->segment_types[IR_SEGMENT_GLOBAL], 1);
irp->const_code_irg = new_const_code_irg();
- irp->phase_state = phase_building;
irp->class_cast_state = ir_class_casts_transitive;
irp->globals_entity_usage_state = ir_entity_usage_not_computed;
#undef IDENT
void free_ir_prog(void)
{
+ if (irp == NULL)
+ return;
+
size_t i;
/* must iterate backwards here */
for (i = get_irp_n_irgs(); i > 0;)
ARR_APP1(ir_graph *, irp->graphs, irg);
}
-void remove_irp_irg_from_list(ir_graph *irg)
+void remove_irp_irg(ir_graph *irg)
{
size_t i, l;
}
}
-void remove_irp_irg(ir_graph *irg)
-{
- free_ir_graph(irg);
- remove_irp_irg_from_list(irg);
-}
-
size_t (get_irp_n_irgs)(void)
{
return get_irp_n_irgs_();
return get_const_code_irg_();
}
-irg_phase_state get_irp_phase_state(void)
-{
- return irp->phase_state;
-}
-
-void set_irp_phase_state(irg_phase_state s)
-{
- irp->phase_state = s;
-}
-
-typedef struct pass_t {
- ir_prog_pass_t pass;
- irg_phase_state state;
-} pass_t;
-
-/**
- * Wrapper for setting the state of a whole ir_prog.
- */
-static int set_irp_phase_state_wrapper(ir_prog *irp, void *context)
-{
- pass_t *pass = (pass_t *)context;
- irg_phase_state state = pass->state;
- size_t i, n;
-
- (void)irp;
-
- /* set the phase of all graphs */
- for (i = 0, n = get_irp_n_irgs(); i < n; ++i)
- set_irg_phase_state(get_irp_irg(i), state);
-
- /* set the irp phase */
- set_irp_phase_state(state);
-
- return 0;
-}
-
-ir_prog_pass_t *set_irp_phase_state_pass(const char *name, irg_phase_state state)
-{
- struct pass_t *pass = XMALLOCZ(struct pass_t);
-
- def_prog_pass_constructor(
- &pass->pass, name ? name : "set_irp_phase", set_irp_phase_state_wrapper);
- pass->state = state;
-
- /* no dump/verify */
- pass->pass.verify_irprog = ir_prog_no_verify;
- pass->pass.dump_irprog = ir_prog_no_dump;
-
- return &pass->pass;
-}
-
void set_irp_ip_outedges(ir_node ** ip_outedges)
{
irp->ip_outedges = ip_outedges;
return irp->global_asms[pos];
}
-int (get_irp_optimization_dumps)(void)
-{
- return get_irp_optimization_dumps_();
-}
-
-void (enable_irp_optimization_dumps)(void)
-{
- enable_irp_optimization_dumps_();
-}
-
#ifndef NDEBUG
void irp_reserve_resources(ir_prog *irp, irp_resources_t resources)
{