X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbecopyopt.c;h=316e31a03ca2a69f601fd56a15facdcd02120451;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=d738993a382001bb8730e12919dbdf999dcc764f;hpb=c0461ca4cf5f3c74a1f7e32aca1e07cce6835984;p=libfirm diff --git a/ir/be/becopyopt.c b/ir/be/becopyopt.c index d738993a3..316e31a03 100644 --- a/ir/be/becopyopt.c +++ b/ir/be/becopyopt.c @@ -73,6 +73,7 @@ static const lc_opt_enum_mask_items_t style_items[] = { }; static const lc_opt_enum_mask_items_t algo_items[] = { + { "none", CO_ALGO_NONE }, { "heur", CO_ALGO_HEUR }, { "heur2", CO_ALGO_HEUR2 }, { "heur3", CO_ALGO_HEUR3 }, @@ -1073,7 +1074,6 @@ static void appel_inter_block_aff(ir_node *bl, void *data) for(j = 0, n = get_Block_n_cfgpreds(bl); j < n; ++j) { ir_node *pred = get_Block_cfgpred_block(bl, j); - appel_block_info_t *pred_bli = phase_get_irn_data(&env->ph, pred); int nr = appel_get_live_end_nr(env, pred, irn); assert(nr >= 0); @@ -1086,7 +1086,6 @@ static void appel_inter_block_aff(ir_node *bl, void *data) for(j = 0, n = get_Block_n_cfgpreds(bl); j < n; ++j) { ir_node *pred = get_Block_cfgpred_block(bl, j); - appel_block_info_t *pred_bli = phase_get_irn_data(&env->ph, pred); ir_node *op = get_irn_n(irn, j); int nr = appel_get_live_end_nr(env, pred, op); @@ -1230,7 +1229,7 @@ static void ifg_dump_node_attr(FILE *f, void *self, ir_node *irn) } else - fprintf(f, "label=\"\"" ); + fprintf(f, "label=\"\" shape=point " ); if(env->flags & CO_IFG_DUMP_SHAPE) fprintf(f, "shape=%s ", limited ? "diamond" : "ellipse"); @@ -1332,6 +1331,7 @@ void co_driver(be_chordal_env_t *cenv) { copy_opt_t *co; co_algo_t *algo_func; + int init_costs; if(algo < 0 || algo >= CO_ALGO_LAST) return; @@ -1339,11 +1339,7 @@ void co_driver(be_chordal_env_t *cenv) co = new_copy_opt(cenv, cost_func); co_build_ou_structure(co); co_build_graph_structure(co); - if(do_stats) { - ir_printf("%30F %10s %7d%7d%7d%7d", cenv->irg, cenv->cls->name, - co_get_max_copy_costs(co), co_get_copy_costs(co), - co_get_inevit_copy_costs(co), co_get_lower_bound(co)); - } + init_costs = co_get_copy_costs(co); /* Dump the interference graph in Appel's format. */ if(dump_flags & DUMP_APPEL) { @@ -1372,10 +1368,14 @@ void co_driver(be_chordal_env_t *cenv) int remaining = co_get_copy_costs(co); int evitable = remaining - co_get_lower_bound(co); + ir_printf("%30F %10s %10d%10d%10d%10d", cenv->irg, cenv->cls->name, + co_get_max_copy_costs(co), init_costs, + co_get_inevit_copy_costs(co), co_get_lower_bound(co)); + if(optimizable_costs > 0) - printf("%5d %5.2f\n", remaining, (evitable * 100.0) / optimizable_costs); + printf("%10d %5.2f\n", remaining, (evitable * 100.0) / optimizable_costs); else - printf("%5d %5s\n", remaining, "-"); + printf("%10d %5s\n", remaining, "-"); } co_free_graph_structure(co);