#define COLLECT_REMATS
#define REMAT_WHILE_LIVE
#define NO_ENLARGE_L1V3N355
-//#define EXECFREQ_LOOPDEPH
+#define EXECFREQ_LOOPDEPH
+#define MAY_DIE_AT_PRE_REMAT
#define SOLVE
#undef SOLVE_LOCAL
ir_node *keep;
#endif
set *values; /**< for collecting all definitions of values before running ssa-construction */
+#ifndef EXECFREQ_LOOPDEPH
set *execfreqs;
+#endif
DEBUG_ONLY(firm_dbg_module_t * dbg);
} spill_ilp_t;
}
}
+#ifdef MAY_DIE_AT_PRE_REMAT
if(cst == ILP_UNDEF) {
foreach_pre_remat(si, irn, remat) {
int i,
}
/* TODO check afterwards whether lr dies after a pre-remat (should not happen) */
}
-
}
}
+#endif
fertig:
if(prev_lr != ILP_UNDEF) {
si.lpp = new_lpp(problem_name, lpp_minimize);
si.remat_info = new_set(cmp_remat_info, 4096);
si.all_possible_remats = pset_new_ptr_default();
+#ifndef EXECFREQ_LOOPDEPH
si.execfreqs = compute_execfreq(chordal_env->irg);
+#endif
#ifdef KEEPALIVE
si.keep = NULL;
#endif
free_dom(chordal_env->irg);
del_pset(si.all_possible_remats);
+#ifndef EXECFREQ_LOOPDEPH
del_set(si.execfreqs);
+#endif
free_lpp(si.lpp);
obstack_free(&obst, NULL);
// exit(0);