- * Blocks become dead and new Returns were deleted, so dominator, outs and loop are inconsistent,
- * trouts and callee-state should be still valid
- */
- set_irg_doms_inconsistent(irg);
- set_irg_extblk_inconsistent(irg); /* may not be needed */
- set_irg_outs_inconsistent(irg);
- set_irg_loopinfo_inconsistent(current_ir_graph);
+ * Blocks become dead and new Returns were deleted, so dominator, outs and
+ * loop are inconsistent, trouts and callee-state should be still valid */
+ confirm_irg_properties(irg,
+ IR_GRAPH_PROPERTY_NO_TUPLES
+ | IR_GRAPH_PROPERTY_NO_CRITICAL_EDGES
+ | IR_GRAPH_PROPERTY_CONSISTENT_ENTITY_USAGE);
+ add_irg_properties(irg, IR_GRAPH_PROPERTY_MANY_RETURNS);
+}
+
+/* Create a graph pass. */
+ir_graph_pass_t *normalize_n_returns_pass(const char *name)
+{
+ return def_graph_pass(name ? name : "n_rets", normalize_n_returns);