X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgraph.c;h=6ae878cd7ebf5c89b5e57790669b26acf284d5b2;hb=afbbc0b1ccd684c4c24bfd43d0f994123245f39f;hp=0f0526a9765ef63e653547ede7fcd3714c7d61f2;hpb=e30e5834fd8c1c3a7d28fc66e99b91a84993bde8;p=libfirm diff --git a/ir/ir/irgraph.c b/ir/ir/irgraph.c index 0f0526a97..6ae878cd7 100644 --- a/ir/ir/irgraph.c +++ b/ir/ir/irgraph.c @@ -166,6 +166,10 @@ void irg_set_nloc(ir_graph *res, int n_loc) { the store. This is not the number of parameters to the procedure! */ } + if (res->loc_descriptions) { + xfree(res->loc_descriptions); + res->loc_descriptions = NULL; + } } /* Allocates a list of nodes: @@ -191,7 +195,7 @@ ir_graph *new_r_ir_graph(ir_entity *ent, int n_loc) { /*-- initialized for each graph. --*/ res->kind = k_ir_graph; - res->obst = xmalloc (sizeof(*res->obst)); + res->obst = XMALLOC(struct obstack); obstack_init(res->obst); res->phase_state = phase_building; @@ -230,7 +234,7 @@ ir_graph *new_r_ir_graph(ir_entity *ent, int n_loc) { res->extblk_state = ir_extblk_info_none; res->execfreq_state = exec_freq_none; res->fp_model = fp_model_precise; - res->adr_taken_state = ir_address_taken_not_computed; + res->entity_usage_state = ir_entity_usage_not_computed; res->mem_disambig_opt = aa_opt_inherited; /*-- Type information for the procedure of the graph --*/ @@ -316,7 +320,7 @@ ir_graph *new_const_code_irg(void) { #if USE_EXPLICIT_PHI_IN_STACK res->Phi_in_stack = NULL; #endif - res->obst = xmalloc(sizeof(*res->obst)); + res->obst = XMALLOC(struct obstack); obstack_init (res->obst); res->extbb_obst = NULL; @@ -467,7 +471,7 @@ ir_graph *create_irg_copy(ir_graph *irg) { #if USE_EXPLICIT_PHI_IN_STACK res->Phi_in_stack = NULL; #endif - res->obst = xmalloc(sizeof(*res->obst)); + res->obst = XMALLOC(struct obstack); obstack_init(res->obst); res->extbb_obst = NULL; @@ -639,7 +643,7 @@ ir_node * void (set_irg_end_except)(ir_graph *irg, ir_node *node) { - assert(get_irn_op(node) == op_EndExcept || get_irn_op(node) == op_End); + assert(get_irn_op(node) == op_EndExcept || is_End(node)); _set_irg_end_except(irg, node); } @@ -921,18 +925,18 @@ void * return _get_irg_link(irg); } -unsigned long +ir_visited_t (get_irg_visited)(const ir_graph *irg) { return _get_irg_visited(irg); } #ifdef INTERPROCEDURAL_VIEW /** maximum visited flag content of all ir_graph visited fields. */ -static unsigned long max_irg_visited = 0; +static ir_visited_t max_irg_visited = 0; #endif /* INTERPROCEDURAL_VIEW */ void -set_irg_visited(ir_graph *irg, unsigned long visited) { +set_irg_visited(ir_graph *irg, ir_visited_t visited) { irg->visited = visited; #ifdef INTERPROCEDURAL_VIEW if (irg->visited > max_irg_visited) { @@ -953,13 +957,13 @@ inc_irg_visited(ir_graph *irg) { } #ifdef INTERPROCEDURAL_VIEW -unsigned long +ir_visited_t get_max_irg_visited(void) { - /* +#ifndef NDEBUG int i; for(i = 0; i < get_irp_n_irgs(); i++) - assert(max_irg_visited >= get_irg_visited(get_irp_irg(i))); - */ + assert(max_irg_visited >= get_irg_visited(get_irp_irg(i))); +#endif return max_irg_visited; } @@ -967,24 +971,24 @@ void set_max_irg_visited(int val) { max_irg_visited = val; } -unsigned long +ir_visited_t inc_max_irg_visited(void) { - /* +#ifndef NDEBUG int i; for(i = 0; i < get_irp_n_irgs(); i++) - assert(max_irg_visited >= get_irg_visited(get_irp_irg(i))); - */ + assert(max_irg_visited >= get_irg_visited(get_irp_irg(i))); +#endif return ++max_irg_visited; } #endif /* INTERPROCEDURAL_VIEW */ -unsigned long +ir_visited_t (get_irg_block_visited)(const ir_graph *irg) { return _get_irg_block_visited(irg); } void -(set_irg_block_visited)(ir_graph *irg, unsigned long visited) { +(set_irg_block_visited)(ir_graph *irg, ir_visited_t visited) { _set_irg_block_visited(irg, visited); } @@ -1031,7 +1035,7 @@ void set_irg_loc_description(ir_graph *irg, int n, void *description) { assert(0 <= n && n < irg->n_loc); if (! irg->loc_descriptions) - irg->loc_descriptions = xcalloc(sizeof(*irg->loc_descriptions), irg->n_loc); + irg->loc_descriptions = XMALLOCNZ(void*, irg->n_loc); irg->loc_descriptions[n] = description; }