X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircgopt.c;h=06cef8351f2ee1e829a8f15ebeb08772b769e778;hb=19975388facbb3943fbc2aa2f5f9422350bb5cb3;hp=28d4a3e33afce22b7a1d3df34696d4652f51d45f;hpb=1bb1c35d81ca5db142a526c5245bbacfaf3e0780;p=libfirm diff --git a/ir/ir/ircgopt.c b/ir/ir/ircgopt.c index 28d4a3e33..06cef8351 100644 --- a/ir/ir/ircgopt.c +++ b/ir/ir/ircgopt.c @@ -25,7 +25,7 @@ #include "irprog.h" #include "irgwalk.h" #include "irloop.h" - +#include "irflag_t.h" static void clear_link(ir_node * node, void * env) { set_irn_link(node, NULL); @@ -47,6 +47,8 @@ void gc_irgs(int n_keep, entity ** keep_arr) { void * MARK = &MARK; int i; + if (!get_opt_dead_method_elimination()) return; + /* mark */ if (n_keep > 0) { entity ** marked = NEW_ARR_F(entity *, n_keep); @@ -89,6 +91,8 @@ void gc_irgs(int n_keep, entity ** keep_arr) { if (get_entity_link(ent) != MARK) { remove_irp_irg(irg); set_entity_peculiarity(ent, peculiarity_description); + if (get_opt_dead_method_elimination_verbose()) + printf("dead method elimination: freeing method %s\n", get_entity_ld_name(ent)); } set_entity_link(ent, NULL); }