use copymin ilp when specified on command line
{ "none", BE_CH_COPYMIN_NONE },
{ "heur", BE_CH_COPYMIN_HEUR },
#ifdef WITH_ILP
{ "none", BE_CH_COPYMIN_NONE },
{ "heur", BE_CH_COPYMIN_HEUR },
#ifdef WITH_ILP
- { "ilp", BE_CH_COPYMIN_ILP },
+ { "ilp1", BE_CH_COPYMIN_ILP1 },
+ { "ilp2", BE_CH_COPYMIN_ILP2 },
/* copy minimization */
#ifdef COPYOPT_STAT
co_compare_solvers(&chordal_env);
/* copy minimization */
#ifdef COPYOPT_STAT
co_compare_solvers(&chordal_env);
-#else
- if (options.copymin_method != BE_CH_COPYMIN_NONE)
+#else /* COPYOPT_STAT */
{
copy_opt_t *co = new_copy_opt(&chordal_env, co_get_costs_loop_depth);
co_build_ou_structure(co);
{
copy_opt_t *co = new_copy_opt(&chordal_env, co_get_costs_loop_depth);
co_build_ou_structure(co);
- co_solve_heuristic(co);
+
+ switch(options.copymin_method) {
+ case BE_CH_COPYMIN_HEUR:
+ co_solve_heuristic(co);
+ break;
+#ifdef WITH_ILP
+ case BE_CH_COPYMIN_ILP1:
+ co_solve_ilp1(co, 60.0);
+ break;
+ case BE_CH_COPYMIN_ILP2:
+ co_build_graph_structure(co);
+ co_solve_ilp2(co, 60.0);
+ co_free_graph_structure(co);
+ break;
+#endif /* WITH_ILP */
+ case BE_CH_COPYMIN_NONE:
+ default:
+ break;
+ }
+
co_free_ou_structure(co);
free_copy_opt(co);
}
co_free_ou_structure(co);
free_copy_opt(co);
}
+#endif /* COPYOPT_STAT */
dump(BE_CH_DUMP_COPYMIN, irg, chordal_env.cls, "-copymin", dump_ir_block_graph_sched);
be_ra_chordal_check(&chordal_env);
dump(BE_CH_DUMP_COPYMIN, irg, chordal_env.cls, "-copymin", dump_ir_block_graph_sched);
be_ra_chordal_check(&chordal_env);
/* copymin method */
BE_CH_COPYMIN_NONE = 0,
BE_CH_COPYMIN_HEUR = 1,
/* copymin method */
BE_CH_COPYMIN_NONE = 0,
BE_CH_COPYMIN_HEUR = 1,
+ BE_CH_COPYMIN_ILP1 = 2,
+ BE_CH_COPYMIN_ILP2 = 3,
/* ifg flavor */
BE_CH_IFG_STD = 1,
/* ifg flavor */
BE_CH_IFG_STD = 1,