X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Frta.c;h=ea0ae3fb6c0e2eb22edbb0a1a0d1a131462cf958;hb=d5d7159c209a9e5c5fa276f770b5b28a217990a8;hp=94836dbd43970f11c2033e09f1a77772c8621a53;hpb=9d4e23060441530a20af5d331268435bfe18f305;p=libfirm diff --git a/ir/ana/rta.c b/ir/ana/rta.c index 94836dbd4..ea0ae3fb6 100644 --- a/ir/ana/rta.c +++ b/ir/ana/rta.c @@ -97,8 +97,8 @@ static bool add_class(ir_type *clazz) */ static bool add_implementing_graphs(ir_entity *method) { - int i; - int n_over = get_entity_n_overwrittenby(method); + size_t i; + size_t n_over = get_entity_n_overwrittenby(method); ir_graph *graph = get_entity_irg(method); bool change = false; @@ -263,9 +263,8 @@ static size_t stats(void) */ static void init_tables(void) { - ir_type *tp; - int i, n; - ir_graph *irg; + ir_graph *irg; + ir_segment_t segment; _live_classes = XMALLOC(pset_new_t); pset_new_init(_live_classes); @@ -278,24 +277,18 @@ static void init_tables(void) pset_new_insert(_live_graphs, irg); } - /* Find static allocated classes */ - tp = get_glob_type(); - n = get_class_n_members(tp); - for (i = 0; i < n; ++i) { - ir_type *member_type = get_entity_type(get_class_member(tp, i)); - if (is_Class_type(member_type)) - pset_new_insert(_live_classes, member_type); - } + /* Find static allocated classes in all segments */ + for (segment = IR_SEGMENT_FIRST; segment <= IR_SEGMENT_LAST; ++segment) { + ir_type *tp = get_segment_type(segment); + size_t n = get_compound_n_members(tp); + size_t i; - tp = get_tls_type(); - n = get_struct_n_members(tp); - for (i = 0; i < n; ++i) { - ir_type *member_type = get_entity_type(get_struct_member(tp, i)); - if (is_Class_type(member_type)) - pset_new_insert(_live_classes, member_type); + for (i = 0; i < n; ++i) { + ir_type *member_type = get_entity_type(get_compound_member(tp, i)); + if (is_Class_type(member_type)) + pset_new_insert(_live_classes, member_type); + } } - - /** @FIXME: add constructors/destructors */ } /* @@ -309,9 +302,9 @@ void rta_init(void) # ifdef DEBUG_libfirm { - int i; - for (i = get_irp_n_irgs() - 1; i >= 0; --i) { - irg_verify(get_irp_irg(i), 0); + size_t i; + for (i = get_irp_n_irgs(); i > 0;) { + irg_verify(get_irp_irg(--i), 0); } tr_verify(); } @@ -327,10 +320,10 @@ void rta_init(void) # ifdef DEBUG_libfirm { - int i; + size_t i; - for (i = get_irp_n_irgs() - 1; i >= 0; --i) { - irg_verify(get_irp_irg(i), 0); + for (i = get_irp_n_irgs(); i > 0;) { + irg_verify(get_irp_irg(--i), 0); } tr_verify(); } @@ -365,15 +358,15 @@ static void make_entity_to_description(type_or_ent tore, void *env) */ void rta_delete_dead_graphs(void) { - int i, n_dead_irgs, n_graphs = get_irp_n_irgs(); + size_t i, n_dead_irgs, n_graphs = get_irp_n_irgs(); ir_graph *irg, *next_irg, *dead_irgs; irp_reserve_resources(irp, IR_RESOURCE_IRG_LINK); n_dead_irgs = 0; dead_irgs = NULL; - for (i = n_graphs - 1; i >= 0; --i) { - irg = get_irp_irg(i); + for (i = n_graphs; i > 0;) { + irg = get_irp_irg(--i); if (! rta_is_alive_graph(irg)) { set_irg_link(irg, dead_irgs); @@ -389,7 +382,7 @@ void rta_delete_dead_graphs(void) remove_irp_irg(irg); } - DB((dbg, LEVEL_1, "RTA: dead methods = %i\n", n_dead_irgs)); + DB((dbg, LEVEL_1, "RTA: dead methods = %zu\n", n_dead_irgs)); irp_free_resources(irp, IR_RESOURCE_IRG_LINK); } @@ -398,9 +391,9 @@ void rta_delete_dead_graphs(void) void rta_cleanup(void) { # ifdef DEBUG_libfirm - int i; - for (i = get_irp_n_irgs() - 1; i >= 0; --i) { - irg_verify(get_irp_irg(i), 0); + size_t i; + for (i = get_irp_n_irgs(); i > 0;) { + irg_verify(get_irp_irg(--i), 0); } tr_verify(); # endif /* defined DEBUG_libfirm */ @@ -433,7 +426,7 @@ int rta_is_alive_graph(ir_graph *graph) /* dump our opinion */ void rta_report(void) { - int i, n; + size_t i, n; n = get_irp_n_types(); for (i = 0; i < n; ++i) {