X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprog.c;h=1fbcf35c7962a7f054d8cfc384a49283ab51183d;hb=5baeb7adbb892d71ead14a2fc3d71bae2d45d38e;hp=bd5a73c2cc0dabe3249853c1133d26b84434da60;hpb=a96ece7b3fc2821c234710458ec9ab1b8fbc737a;p=libfirm diff --git a/ir/ir/irprog.c b/ir/ir/irprog.c index bd5a73c2c..1fbcf35c7 100644 --- a/ir/ir/irprog.c +++ b/ir/ir/irprog.c @@ -62,7 +62,7 @@ static ir_prog *new_incomplete_ir_prog(void) 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; @@ -99,7 +99,6 @@ static void complete_ir_prog(ir_prog *irp, const char *module_name) 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 @@ -126,6 +125,9 @@ ir_prog *new_ir_prog(const char *name) void free_ir_prog(void) { + if (irp == NULL) + return; + size_t i; /* must iterate backwards here */ for (i = get_irp_n_irgs(); i > 0;) @@ -197,7 +199,7 @@ void add_irp_irg(ir_graph *irg) 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; @@ -214,12 +216,6 @@ void remove_irp_irg_from_list(ir_graph *irg) } } -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_(); @@ -306,57 +302,6 @@ ir_graph *(get_const_code_irg)(void) 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; @@ -398,16 +343,6 @@ ident *get_irp_asm(size_t pos) 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) {