panic() instead of assert(0).
[libfirm] / ir / opt / tailrec.c
index 55ea68a..45f1b50 100644 (file)
@@ -78,7 +78,7 @@ static void collect_data(ir_node *node, void *env) {
                if (op == op_Proj) {
                        ir_node *start = get_Proj_pred(pred);
 
-                       if (get_irn_op(start) == op_Start) {
+                       if (is_Start(start)) {
                                if (get_Proj_proj(pred) == pn_Start_T_args) {
                                        /* found Proj(ProjT(Start)) */
                                        set_irn_link(node, data->proj_data);
@@ -719,10 +719,11 @@ void opt_tail_recursion(void) {
 
                current_ir_graph = irg;
 
-               set_using_irn_link(irg);
+               ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
                if (opt_tail_rec_irg(irg))
                        ++n_opt_applications;
-               clear_using_irn_link(irg);
+
+               ir_free_resources(irg, IR_RESOURCE_IRN_LINK);
        }
 
        DB((dbg, LEVEL_1, "Performed tail recursion for %d of %d graphs\n",