X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fgarbage_collect.c;h=9ea12b8095d56349c8593a8cb58dc5418e5d0b78;hb=5ea61f3166daab45e560f0d7955fd4c72d8c7167;hp=9f32c64e902bca898c274ef12515a4bc5dbd19d7;hpb=9d4e23060441530a20af5d331268435bfe18f305;p=libfirm diff --git a/ir/opt/garbage_collect.c b/ir/opt/garbage_collect.c index 9f32c64e9..9ea12b809 100644 --- a/ir/opt/garbage_collect.c +++ b/ir/opt/garbage_collect.c @@ -149,13 +149,13 @@ static void garbage_collect_in_segment(ir_type *segment) void garbage_collect_entities(void) { - size_t i, n; + size_t i; ir_segment_t s; FIRM_DBG_REGISTER(dbg, "firm.opt.garbagecollect"); /* start a type walk for all externally visible entities */ - irp_reserve_resources(irp, IR_RESOURCE_TYPE_VISITED); + irp_reserve_resources(irp, IRP_RESOURCE_TYPE_VISITED); inc_master_type_visited(); inc_max_irg_visited(); @@ -169,8 +169,8 @@ void garbage_collect_entities(void) /* remove graphs of non-visited functions * (we have to count backwards so we can safely call remove_irp_irg * while iterating) */ - for (i = 0, n = get_irp_n_irgs(); i < n; ++i) { - ir_graph *irg = get_irp_irg(i); + for (i = get_irp_n_irgs(); i > 0;) { + ir_graph *irg = get_irp_irg(--i); ir_entity *entity = get_irg_entity(irg); if (entity_visited(entity)) @@ -185,7 +185,7 @@ void garbage_collect_entities(void) ir_type *type = get_segment_type(s); garbage_collect_in_segment(type); } - irp_free_resources(irp, IR_RESOURCE_TYPE_VISITED); + irp_free_resources(irp, IRP_RESOURCE_TYPE_VISITED); } ir_prog_pass_t *garbage_collect_entities_pass(const char *name)