Typo fixed.
[libfirm] / ir / ir / irgopt.c
index f2b0dc5..74bb31c 100644 (file)
@@ -46,10 +46,13 @@ static void init_link (ir_node *n, void *env) {
 static void
 optimize_in_place_wrapper (ir_node *n, void *env) {
   int i;
-  ir_node *optimized;
+  ir_node *optimized, *old;
 
   for (i = 0; i < get_irn_arity(n); i++) {
-    optimized = optimize_in_place_2(get_irn_n(n, i));
+    /* get?irn_n skips Id nodes, so comparison old != optimized does not
+       show all optimizations. Therefore always set new predecessor. */
+    old = get_irn_n(n, i);
+    optimized = optimize_in_place_2(old);
     set_irn_n(n, i, optimized);
   }
 
@@ -207,7 +210,7 @@ copy_preds (ir_node *n, void *env) {
     for (i = 0; i < get_irn_arity(n); i++)
       if (get_irn_opcode(get_irn_n(n, i)) != iro_Bad) {
        set_irn_n (nn, j, get_new_node(get_irn_n(n, i)));
-       //if (is_backedge(n, i)) set_backedge(nn, j);
+       /*if (is_backedge(n, i)) set_backedge(nn, j);*/
        j++;
       }
     /* repair the block visited flag from above misuse. Repair it in both
@@ -231,7 +234,7 @@ copy_preds (ir_node *n, void *env) {
     for (i = 0; i < get_irn_arity(n); i++)
       if (get_irn_opcode(get_irn_n(block, i)) != iro_Bad) {
        set_irn_n (nn, j, get_new_node(get_irn_n(n, i)));
-       //if (is_backedge(n, i)) set_backedge(nn, j);
+       /*if (is_backedge(n, i)) set_backedge(nn, j);*/
        j++;
       }
     /* If the pre walker reached this Phi after the post walker visited the
@@ -1484,7 +1487,7 @@ static void walk_critical_cf_edges(ir_node *n, void *env) {
       /* Predecessor has multiple sucessors. Insert new flow edge */
       if ((NULL != pre) && (op_Proj == get_irn_op(pre))) {
 
-       /* set predeseccor array for new block */
+       /* set predecessor array for new block */
        in = NEW_ARR_D (ir_node *, current_ir_graph->obst, 1);
        /* set predecessor of new block */
        in[0] = pre;