{ NULL, 0 }
};
+typedef int (*opt_funcptr)(void);
+
static const lc_opt_enum_func_ptr_items_t cost_func_items[] = {
- { "freq", co_get_costs_exec_freq },
- { "loop", co_get_costs_loop_depth },
- { "one", co_get_costs_all_one },
- { NULL, 0 }
+ { "freq", (opt_funcptr) co_get_costs_exec_freq },
+ { "loop", (opt_funcptr) co_get_costs_loop_depth },
+ { "one", (opt_funcptr) co_get_costs_all_one },
+ { NULL, NULL }
};
static lc_opt_enum_mask_var_t dump_var = {
};
static lc_opt_enum_func_ptr_var_t cost_func_var = {
- &cost_func, cost_func_items
+ (opt_funcptr*) &cost_func, cost_func_items
};
static const lc_opt_table_entry_t options[] = {
DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL;)
+
void be_copy_opt_init(void) {
- if(algo == CO_ALGO_HEUR3)
- be_java_coal_start_jvm();
}
copy_opt_t *new_copy_opt(be_chordal_env_t *chordal_env, cost_fct_t get_costs)
be_stat_ev_ull("co_prepare_costs", stats.costs);
}
+ /* start the JVM here so that it does not tamper the timing. */
+ if(algo == CO_ALGO_HEUR3)
+ be_java_coal_start_jvm();
+
algo_func = algos[algo].algo;
#ifdef WITH_LIBCORE
co_complete_stats(co, &after);
if(do_stats) {
- int optimizable_costs = after.max_costs - after.inevit_costs;
- int evitable = after.costs - after.inevit_costs;
+ ulong64 optimizable_costs = after.max_costs - after.inevit_costs;
+ ulong64 evitable = after.costs - after.inevit_costs;
ir_printf("%30F ", cenv->irg);
- printf("%10s %10llu%10llu%10llu", cenv->cls->name, after.max_costs, before.costs, after.inevit_costs);
+ printf("%10s %10" ULL_FMT "%10" ULL_FMT "%10" ULL_FMT, cenv->cls->name, after.max_costs, before.costs, after.inevit_costs);
if(optimizable_costs > 0)
- printf("%10llu %5.2f\n", after.costs, (evitable * 100.0) / optimizable_costs);
+ printf("%10" ULL_FMT " %5.2f\n", after.costs, (evitable * 100.0) / optimizable_costs);
else
- printf("%10llu %5s\n", after.costs, "-");
+ printf("%10" ULL_FMT " %5s\n", after.costs, "-");
}
be_stat_ev_ull("co_after_costs", after.costs);