+ return 0;
+}
+
+
+/*
+ * This tail recursion optimization works best
+ * if the Returns are normalized.
+ */
+static optdesc_t opt_tailrec = {
+ "tail-recursion",
+ IR_GRAPH_STATE_MANY_RETURNS | IR_GRAPH_STATE_NO_BADS | IR_GRAPH_STATE_CONSISTENT_OUTS,
+ do_tailrec,
+};
+
+int opt_tail_rec_irg(ir_graph *irg) {
+ perform_irg_optimization(irg, &opt_tailrec);
+ return 1; /* conservatively report changes */