X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Ftailrec.c;h=c64759ff57cb153690362a8dcc50b64b3969720c;hb=0fbcef83aa6060534172bb13e71cdadb04428806;hp=55ea68a42d548ad9c6218827750cf4cadb10df8a;hpb=887edd1f510c555fc69df94b1cd230898a9c030a;p=libfirm diff --git a/ir/opt/tailrec.c b/ir/opt/tailrec.c index 55ea68a42..c64759ff5 100644 --- a/ir/opt/tailrec.c +++ b/ir/opt/tailrec.c @@ -24,9 +24,7 @@ * @author Michael Beck * @version $Id$ */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include "config.h" #include #include @@ -34,7 +32,7 @@ #include "debug.h" #include "iroptimize.h" #include "scalar_replace.h" -#include "array.h" +#include "array_t.h" #include "irprog_t.h" #include "irgwalk.h" #include "irgmod.h" @@ -47,7 +45,6 @@ #include "irouts.h" #include "irhooks.h" #include "ircons_t.h" -#include "xmalloc.h" DEBUG_ONLY(static firm_dbg_module_t *dbg); @@ -78,7 +75,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 +716,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",