#include "irouts.h"
#include "irhooks.h"
#include "ircons_t.h"
+#include "irpass.h"
DEBUG_ONLY(static firm_dbg_module_t *dbg);
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) {
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
*/
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);
+}