X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeblocksched.c;h=d783a8922080fe64cfac9b157bed263db104bae5;hb=dd6793ed8b75dd86637857ce795f07607a6d77ec;hp=a398d4a5ffa8bc48039066ee10e25a8d3ded3616;hpb=321855ff2c234518e0ac8d794903eb78d23fc1fa;p=libfirm diff --git a/ir/be/beblocksched.c b/ir/be/beblocksched.c index a398d4a5f..d783a8922 100644 --- a/ir/be/beblocksched.c +++ b/ir/be/beblocksched.c @@ -22,7 +22,6 @@ * @brief Block-scheduling strategies. * @author Matthias Braun, Christoph Mallon * @date 27.09.2006 - * @version $Id$ * * The goals of the greedy (and ILP) algorithm here works by assuming that * we want to change as many jumps to fallthroughs as possible (executed jumps @@ -52,6 +51,7 @@ #include "execfreq.h" #include "irdump_t.h" #include "irtools.h" +#include "util.h" #include "debug.h" #include "beirgmod.h" #include "bemodule.h" @@ -498,10 +498,7 @@ static ir_node **create_block_schedule_greedy(ir_graph *irg, ir_exec_freq *execf env.worklist = NULL; env.blockcount = 0; - /* make sure loopinfo is up-to-date */ - if (! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) { - construct_cf_backedges(irg); - } + assure_loopinfo(irg); // collect edge execution frequencies irg_block_walk_graph(irg, collect_egde_frequency, NULL, &env); @@ -619,7 +616,6 @@ static void collect_egde_frequency_ilp(ir_node *block, void *data) static void coalesce_blocks_ilp(blocksched_ilp_env_t *env) { int edge_count = ARR_LEN(env->ilpedges); - be_options_t *options = be_get_irg_options(env->env.irg); int i; /* complete out constraints */ @@ -641,7 +637,7 @@ static void coalesce_blocks_ilp(blocksched_ilp_env_t *env) lpp_set_factor_fast(env->lpp, entry->out_cst, edge->ilpvar, 1.0); } - lpp_solve_net(env->lpp, options->ilp_server, options->ilp_solver); + lpp_solve_net(env->lpp, be_options.ilp_server, be_options.ilp_solver); assert(lpp_is_sol_valid(env->lpp)); /* Apply results to edges */