X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbessaconstr.c;h=7f7fd8b516fedae66258de01a9e722c00ef18b0a;hb=952e0be71291f6475cb4c86894e43dc531eb8980;hp=45a7c10d993b5c6d17a2c5d1e8cec26827cdfd8d;hpb=06442ea1375d71a91fc5fd0e499cdf4bc9ce6475;p=libfirm diff --git a/ir/be/bessaconstr.c b/ir/be/bessaconstr.c index 45a7c10d9..7f7fd8b51 100644 --- a/ir/be/bessaconstr.c +++ b/ir/be/bessaconstr.c @@ -50,6 +50,9 @@ #include "config.h" #endif +/* statev in this file is extensive, so only enable if needed */ +#define DISABLE_STATEV + #include "bessaconstr.h" #include "bemodule.h" #include "besched_t.h" @@ -265,9 +268,8 @@ void be_ssa_construction_init(be_ssa_construction_env_t *env, be_irg_t *birg) env->new_phis = NEW_ARR_F(ir_node*, 0); env->worklist = new_waitq(); - set_using_irn_visited(irg); - set_using_block_visited(irg); - set_using_irn_link(irg); + ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED + | IR_RESOURCE_BLOCK_VISITED | IR_RESOURCE_IRN_LINK); /* we use the visited flag to indicate blocks in the dominance frontier * and blocks that already have the relevant value at the end calculated */ @@ -283,9 +285,8 @@ void be_ssa_construction_destroy(be_ssa_construction_env_t *env) del_waitq(env->worklist); DEL_ARR_F(env->new_phis); - clear_using_irn_visited(env->irg); - clear_using_block_visited(env->irg); - clear_using_irn_link(env->irg); + ir_free_resources(env->irg, IR_RESOURCE_IRN_VISITED + | IR_RESOURCE_BLOCK_VISITED | IR_RESOURCE_IRN_LINK); stat_ev_tim_pop("bessaconstr_total_time"); stat_ev_ctx_pop("bessaconstr"); @@ -349,9 +350,9 @@ ir_node **be_ssa_construction_get_new_phis(be_ssa_construction_env_t *env) void be_ssa_construction_fix_users_array(be_ssa_construction_env_t *env, ir_node **nodes, size_t nodes_len) { - stat_ev_cnt_decl(uses); const ir_edge_t *edge, *next; size_t i; + stat_ev_cnt_decl(uses); BE_TIMER_PUSH(t_ssa_constr); @@ -388,7 +389,7 @@ void be_ssa_construction_fix_users_array(be_ssa_construction_env_t *env, def = search_def(env, at); if(def == NULL) { - panic("no definition found for %+F at position %d\n", use, pos); + panic("no definition found for %+F at position %d", use, pos); } DBG((dbg, LEVEL_2, "\t%+F(%d) -> %+F\n", use, pos, def));