X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbelistsched.c;h=dfaaad37b04ed444bed66d3045a8f8a596418a31;hb=b9d45e08e23bcf058fa8f2d9e18dd78e8cccd044;hp=1b932df2241fc85083c31ab45f10cf5d94d99c98;hpb=a3bbacbc3a7a2cbfa87c9128edf640c8ebac1d2c;p=libfirm diff --git a/ir/be/belistsched.c b/ir/be/belistsched.c index 1b932df22..dfaaad37b 100644 --- a/ir/be/belistsched.c +++ b/ir/be/belistsched.c @@ -329,8 +329,16 @@ static void add_tuple_projs(block_sched_env_t *env, ir_node *irn) if(is_Bad(irn)) return; + + /* non-proj nodes can have dependency edges to tuple nodes. */ + foreach_out_edge_kind(irn, edge, EDGE_KIND_DEP) { + ir_node *out = get_edge_src_irn(edge); + make_ready(env, irn, out); + } + + /* schedule the normal projs */ foreach_out_edge(irn, edge) { - ir_node *out = edge->src; + ir_node *out = get_edge_src_irn(edge); assert(is_Proj(out) && "successor of a modeT node must be a proj"); @@ -487,6 +495,9 @@ void list_sched(const be_irg_t *birg, be_options_t *be_opts) case BE_SCHED_SELECT_TRIVIAL: memcpy(&sel, trivial_selector, sizeof(sel)); break; + case BE_SCHED_SELECT_RANDOM: + memcpy(&sel, random_selector, sizeof(sel)); + break; case BE_SCHED_SELECT_REGPRESS: memcpy(&sel, reg_pressure_selector, sizeof(sel)); break;