Handle nodes with block predecessors.
authorChristoph Mallon <christoph.mallon@gmx.de>
Tue, 4 Sep 2007 13:41:43 +0000 (13:41 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Tue, 4 Sep 2007 13:41:43 +0000 (13:41 +0000)
[r15665]

ir/be/beschednormal.c

index 0fc950e..44d2537 100644 (file)
@@ -129,7 +129,7 @@ static int normal_tree_cost(ir_node* irn)
                        ir_node* pred = get_irn_n(irn, i);
                        int cost;
 
-                       if (is_Phi(irn) || get_irn_mode(pred) == mode_M) {
+                       if (is_Phi(irn) || get_irn_mode(pred) == mode_M || is_Block(pred)) {
                                cost = 0;
                        } else if (get_nodes_block(pred) != block) {
                                cost = 1;
@@ -238,6 +238,8 @@ static ir_node** sched_node(ir_node** sched, ir_node* irn)
 
        if (irn_visited(irn)) return sched;
 
+       if (is_End(irn)) return sched;
+
        if (!is_Phi(irn)) {
                for (i = 0; i < arity; ++i) {
                        ir_node* pred = irns[i].irn;