#include "beifg_impl.h"
#include "bespillbelady.h"
-#include "bespillilp.h"
#include "belower.h"
+#ifdef WITH_ILP
+#include "bespillilp.h"
+#endif /* WITH_ILP */
+
+#include "becopystat.h"
#include "becopyopt.h"
#include "bessadestr.h"
-#include "becopystat.h"
void be_ra_chordal_check(be_chordal_env_t *chordal_env) {
#ifdef WITH_LIBCORE
static const lc_opt_enum_int_items_t spill_items[] = {
{ "belady", BE_CH_SPILL_BELADY },
-#ifndef NO_ILP
+#ifdef WITH_ILP
{ "ilp", BE_CH_SPILL_ILP },
#endif
{ NULL, 0 }
static const lc_opt_enum_int_items_t copymin_items[] = {
{ "heur", BE_CH_COPYMIN_HEUR },
+#ifdef WITH_ILP
{ "ilp", BE_CH_COPYMIN_ILP },
+#endif
{ NULL, 0 }
};
const char *suffix,
void (*dump_func)(ir_graph *, const char *))
{
- if(1 || (options.dump_flags & mask) == mask) {
+ if(1 || ((options.dump_flags & mask) == mask)) {
if(cls) {
char buf[256];
snprintf(buf, sizeof(buf), "-%s%s", cls->name, suffix);
case BE_CH_SPILL_BELADY:
be_spill_belady(&chordal_env);
break;
-#ifndef NO_ILP
+#ifdef WITH_ILP
case BE_CH_SPILL_ILP:
be_spill_ilp(&chordal_env);
break;
-#endif
+#endif /* WITH_ILP */
default:
fprintf(stderr, "no valid spiller selected. falling back to belady\n");
be_spill_belady(&chordal_env);
be_liveness(irg);
be_check_pressure(&chordal_env);
- be_liveness(irg);
- be_check_pressure(&chordal_env);
-
/* Color the graph. */
be_ra_chordal_color(&chordal_env);
dump(BE_CH_DUMP_CONSTR, irg, chordal_env.cls, "-color", dump_ir_block_graph_sched);
be_ifg_check(chordal_env.ifg);
/* copy minimization */
- copystat_collect_cls(&chordal_env);
+#ifdef COPYOPT_STAT
co_compare_solvers(&chordal_env);
+#else
+ {
+ copy_opt_t *co = new_copy_opt(&chordal_env, co_get_costs_loop_depth);
+ co_build_ou_structure(co);
+ co_solve_heuristic(co);
+ co_free_ou_structure(co);
+ free_copy_opt(co);
+ }
+#endif
dump(BE_CH_DUMP_COPYMIN, irg, chordal_env.cls, "-copymin", dump_ir_block_graph_sched);
be_ra_chordal_check(&chordal_env);
be_ssa_destruction(&chordal_env);
dump(BE_CH_DUMP_SSADESTR, irg, chordal_env.cls, "-ssadestr", dump_ir_block_graph_sched);
be_ssa_destruction_check(&chordal_env);
- be_ra_chordal_check(&chordal_env);
+// be_ra_chordal_check(&chordal_env);
copystat_dump(irg);