Test case for historical reasons
[libfirm] / ir / be / bessaconstr.c
index 45a7c10..7f7fd8b 100644 (file)
@@ -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));