Ignore generated files.
[libfirm] / ir / opt / tailrec.c
index 9971c56..15932a5 100644 (file)
@@ -45,6 +45,7 @@
 #include "irouts.h"
 #include "irhooks.h"
 #include "ircons_t.h"
+#include "irpass.h"
 
 DEBUG_ONLY(static firm_dbg_module_t *dbg);
 
@@ -346,7 +347,6 @@ static void do_opt_tail_rec(ir_graph *irg, tr_env *env) {
                        set_Tuple_pred(call, pn_Call_X_regular,        jmp);
                        set_Tuple_pred(call, pn_Call_X_except,         bad);
                        set_Tuple_pred(call, pn_Call_T_result,         tuple);
-                       set_Tuple_pred(call, pn_Call_M_except,         mem);
                        set_Tuple_pred(call, pn_Call_P_value_res_base, bad);
 
                        for (i = 0; i < env->n_ress; ++i) {
@@ -702,6 +702,11 @@ int opt_tail_rec_irg(ir_graph *irg) {
        return n_tail_calls;
 }
 
+ir_graph_pass_t *opt_tail_rec_irg_pass(const char *name)
+{
+       return def_graph_pass_ret(name ? name : "tailrec", opt_tail_rec_irg);
+}
+
 /*
  * optimize tail recursion away
  */
@@ -727,3 +732,8 @@ void opt_tail_recursion(void) {
        DB((dbg, LEVEL_1, "Performed tail recursion for %d of %d graphs\n",
            n_opt_applications, get_irp_n_irgs()));
 }
+
+ir_prog_pass_t *opt_tail_recursion_pass(const char *name)
+{
+       return def_prog_pass(name ? name : "tailrec", opt_tail_recursion);
+}