X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbelive.c;h=a2e400ee6ae787bd775abed71355cbf25b3000f7;hb=0cf1285126c03f408d0e6567547ce98864fd6e30;hp=644316e65705cbc4a431fbedebd51282dc494b7b;hpb=1ce363f80e6a204d4011f85813362d9bd1d0e7e4;p=libfirm diff --git a/ir/be/belive.c b/ir/be/belive.c index 644316e65..a2e400ee6 100644 --- a/ir/be/belive.c +++ b/ir/be/belive.c @@ -547,17 +547,23 @@ static void compute_liveness(be_lv_t *lv) void be_liveness_assure_sets(be_lv_t *lv) { if (!lv->nodes) { + BE_TIMER_PUSH(t_live); + lv->nodes = bitset_malloc(2 * get_irg_last_idx(lv->irg)); phase_init(&lv->ph, "liveness", lv->irg, PHASE_DEFAULT_GROWTH, lv_phase_data_init, NULL); compute_liveness(lv); /* be_live_chk_compare(lv, lv->lvc); */ + + BE_TIMER_POP(t_live); } } void be_liveness_assure_chk(be_lv_t *lv) { #ifndef USE_LIVE_CHK + BE_TIMER_PUSH(t_verify); be_liveness_assure_sets(lv); + BE_TIMER_POP(t_verify); #else (void) lv; #endif @@ -593,18 +599,21 @@ be_lv_t *be_liveness(const be_irg_t *birg) void be_liveness_recompute(be_lv_t *lv) { - unsigned last_idx = get_irg_last_idx(lv->irg); + unsigned last_idx; + + BE_TIMER_PUSH(t_live); + last_idx = get_irg_last_idx(lv->irg); if(last_idx >= bitset_size(lv->nodes)) { bitset_free(lv->nodes); lv->nodes = bitset_malloc(last_idx * 2); - } - - else + } else bitset_clear_all(lv->nodes); phase_free(&lv->ph); phase_init(&lv->ph, "liveness", lv->irg, PHASE_DEFAULT_GROWTH, lv_phase_data_init, NULL); compute_liveness(lv); + + BE_TIMER_POP(t_live); }