#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"
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 */
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");
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);
env->iterated_domfront_calculated = 1;
}
- stat_ev_int("bessaconstr_domzone", env->max_dom - env->min_dom);
stat_ev_tim_push();
for(i = 0; i < nodes_len; ++i) {
ir_node *value = nodes[i];
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));