X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprog.c;h=b30dac8777f9e5a2cdda66b7785f59ff0c68ea05;hb=637542932dc27dcdfc7def09b58d9d5d4c34fb77;hp=142981700758daf253e3ac3bdcd07b291db2ddb4;hpb=49ad2542b4cc755e005cf7cd0f3fe76240130dba;p=libfirm diff --git a/ir/ir/irprog.c b/ir/ir/irprog.c index 142981700..b30dac877 100644 --- a/ir/ir/irprog.c +++ b/ir/ir/irprog.c @@ -30,14 +30,14 @@ /* A variable from where everything in the ir can be accessed. */ ir_prog *irp; -ir_prog *get_irp() { return irp; } +ir_prog *get_irp(void) { return irp; } /* initializes ir_prog. Calles the constructor for an ir_prog. */ void init_irprog(void) { new_ir_prog (); } -INLINE void remove_irp_type_from_list (type *typ) { +void remove_irp_type_from_list (type *typ) { int i; assert(typ); #if 0 @@ -47,7 +47,7 @@ INLINE void remove_irp_type_from_list (type *typ) { #endif if (irp->types[i] == typ) { for(; i < (ARR_LEN (irp->types)) - 1; i++) { - irp->types[i] = irp->types[i+1]; + irp->types[i] = irp->types[i+1]; } ARR_SETLEN(type*, irp->types, (ARR_LEN(irp->types)) - 1); break; @@ -60,10 +60,10 @@ INLINE void remove_irp_type_from_list (type *typ) { ir_prog *new_ir_prog (void) { ir_prog *res; - res = (ir_prog *) xmalloc (sizeof(ir_prog)); - memset(res, 0, sizeof(res)); + res = xmalloc (sizeof(*res)); + memset(res, 0, sizeof(*res)); irp = res; - /* res->obst = (struct obstack *) xmalloc (sizeof (struct obstack)); */ + /* res->obst = xmalloc (sizeof(*res->obst)); */ res->graphs = NEW_ARR_F (ir_graph *, 0); res->pseudo_graphs = NEW_ARR_F (ir_graph *, 0); res->types = NEW_ARR_F (type *, 0); @@ -80,15 +80,17 @@ ir_prog *new_ir_prog (void) { res->const_code_irg = new_const_code_irg(); - res->outs_state = outs_none; - res->ip_outedges = NULL; + res->outs_state = outs_none; + res->ip_outedges = NULL; + res->trouts_state = outs_none; + res->class_cast_state = ir_class_casts_transitive; return res; } /* frees all memory used by irp. Types in type list, irgs in irg list and entities in global type must be freed by hand before. */ -void free_ir_prog() { +void free_ir_prog(void) { free_type(irp->glob_type); /* @@@ * free_ir_graph(irp->const_code_irg); * ?? End has no in?? */ DEL_ARR_F(irp->graphs); @@ -102,7 +104,7 @@ void free_ir_prog() { /* Access the main routine of the compiled program. */ -ir_graph *get_irp_main_irg() { +ir_graph *get_irp_main_irg(void) { assert (irp); return irp->main_irg; } @@ -131,7 +133,7 @@ void remove_irp_irg_from_list(ir_graph *irg){ if (irp->graphs[i] == irg) { found = true; for(; i < (ARR_LEN (irp->graphs)) - 1; i++) { - irp->graphs[i] = irp->graphs[i+1]; + irp->graphs[i] = irp->graphs[i+1]; } ARR_SETLEN(ir_graph*, irp->graphs, (ARR_LEN(irp->graphs)) - 1); break; @@ -140,11 +142,11 @@ void remove_irp_irg_from_list(ir_graph *irg){ if (!found) { for (i = 0; i < (ARR_LEN (irp->pseudo_graphs)); i++) { if (irp->pseudo_graphs[i] == irg) { - for(; i < (ARR_LEN (irp->pseudo_graphs)) - 1; i++) { - irp->pseudo_graphs[i] = irp->pseudo_graphs[i+1]; - } - ARR_SETLEN(ir_graph*, irp->pseudo_graphs, (ARR_LEN(irp->pseudo_graphs)) - 1); - break; + for(; i < (ARR_LEN (irp->pseudo_graphs)) - 1; i++) { + irp->pseudo_graphs[i] = irp->pseudo_graphs[i+1]; + } + ARR_SETLEN(ir_graph*, irp->pseudo_graphs, (ARR_LEN(irp->pseudo_graphs)) - 1); + break; } } } @@ -243,6 +245,13 @@ 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; +} + irg_outs_state get_irp_ip_outs_state() { return irp->outs_state; } @@ -253,12 +262,12 @@ void set_irp_ip_outs_inconsistent() { void set_irp_ip_outedges(ir_node ** ip_outedges) { - irp -> ip_outedges = ip_outedges; + irp->ip_outedges = ip_outedges; } ir_node** get_irp_ip_outedges(void) { - return(irp -> ip_outedges); + return irp->ip_outedges; }