Added support for SymConst(ofs_ent)
[libfirm] / ir / be / belistsched.c
index 1b932df..dfaaad3 100644 (file)
@@ -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;