};
static const lc_opt_table_entry_t list_sched_option_table[] = {
- LC_OPT_ENT_ENUM_PTR("prep", "schedule preparation (none, mris, rss)", &sched_prep_var),
- LC_OPT_ENT_ENUM_PTR("select", "node selector (trivial, random, regpress, muchnik, heur, hmuchnik)", &sched_select_var),
+ LC_OPT_ENT_ENUM_PTR("prep", "schedule preparation", &sched_prep_var),
+ LC_OPT_ENT_ENUM_PTR("select", "node selector", &sched_select_var),
{ NULL }
};
#endif /* WITH_LIBCORE */
int i, n;
/* Blocks cannot be scheduled. */
- if (is_Block(irn))
+ if (is_Block(irn) || get_irn_n_edges(irn) == 0)
return 0;
/*
if (get_irn_opcode(irn) == iro_End)
continue;
+ if (get_irn_n_edges(irn) == 0)
+ continue;
+
if (is_Phi(irn)) {
/*
Phi functions are scheduled immediately, since they only
/* Keeps must be scheduled immediatly */
foreach_nodeset(be.cands, irn) {
- if (be_is_Keep(irn) || be_is_CopyKeep(irn)) {
+ if (be_is_Keep(irn) || be_is_CopyKeep(irn) || get_irn_mode(irn) == mode_M) {
nodeset_break(be.cands);
break;
}
}
/* Assure, that the out edges are computed */
- edges_assure(irg);
+ edges_deactivate(birg->irg);
+ edges_activate(birg->irg);
switch (list_sched_options.prep) {
case BE_SCHED_PREP_MRIS: