X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fescape_ana.c;h=62d4a7f591049b6142b60fff2d896fe7e096492c;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=57e9a4e446ccee1023f71e9d28271acff72d3a3f;hpb=e81420ee06b2e78015a8cb3c076057045fc65212;p=libfirm diff --git a/ir/opt/escape_ana.c b/ir/opt/escape_ana.c index 57e9a4e44..62d4a7f59 100644 --- a/ir/opt/escape_ana.c +++ b/ir/opt/escape_ana.c @@ -23,6 +23,7 @@ #include "irgraph_t.h" #include "irnode_t.h" #include "type_t.h" +#include "irgwalk.h" #include "irouts.h" #include "analyze_irg_args.h" #include "irgmod.h" @@ -47,7 +48,7 @@ typedef struct _walk_env { } walk_env_t; /** debug handle */ -firm_dbg_module_t *dbgHandle; +DEBUG_ONLY(firm_dbg_module_t *dbgHandle;) /** * checks whether a Raise leaves a method @@ -348,8 +349,10 @@ static void transform_allocs(ir_graph *irg, walk_env_t *env) if (env->nr_removed | env->nr_deads) { set_irg_outs_inconsistent(irg); - if (env->nr_deads) - set_irg_dom_inconsistent(irg); + if (env->nr_deads) { + /* exception control flow might have been changed */ + set_irg_doms_inconsistent(irg); + } } } @@ -391,8 +394,7 @@ void escape_analysis(int run_scalar_replace) return; } - if (! dbgHandle) - dbgHandle = firm_dbg_register("firm.opt.escape_ana"); + FIRM_DBG_REGISTER(dbgHandle, "firm.opt.escape_ana"); /* * We treat memory for speed: we first collect all info in a