X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fircgopt.c;h=ce9e4115c4fe6c3e77d9926a98aa91b828a23d8e;hb=8d40867b11db9064f88bc3fd928e034058873631;hp=c0cddd8f44317df0f4df3dd40bacae86eecfbefb;hpb=7d5b331123bd8399f5f1d057e90797faa3300b66;p=libfirm diff --git a/ir/opt/ircgopt.c b/ir/opt/ircgopt.c index c0cddd8f4..ce9e4115c 100644 --- a/ir/opt/ircgopt.c +++ b/ir/opt/ircgopt.c @@ -22,7 +22,6 @@ * @brief Removal of unreachable methods. * @author Hubert Schmid * @date 09.06.2002 - * @version $Id$ */ /* @@ -64,7 +63,6 @@ static void collect_call(ir_node *node, void *env) void gc_irgs(size_t n_keep, ir_entity ** keep_arr) { void * MARK = &MARK; /* @@@ gefaehrlich!!! Aber wir markieren hoechstens zu viele ... */ - size_t i, n; FIRM_DBG_REGISTER(dbg, "firm.opt.cgopt"); @@ -123,7 +121,7 @@ void gc_irgs(size_t n_keep, ir_entity ** keep_arr) } /* clean */ - for (i = 0, n = get_irp_n_irgs(); i < n; ++i) { + for (size_t i = get_irp_n_irgs(); i-- != 0;) { ir_graph *irg = get_irp_irg(i); ir_entity *ent = get_irg_entity(irg); @@ -131,9 +129,7 @@ void gc_irgs(size_t n_keep, ir_entity ** keep_arr) continue; DB((dbg, LEVEL_1, " freeing method %+F\n", ent)); - remove_irp_irg(irg); - - free_entity(ent); + free_ir_graph(irg); } }