- irg_walk_graph(irg, conv_opt_walker, NULL, NULL);
+ do {
+ changed = false;
+ irg_walk_graph(irg, NULL, conv_opt_walker, &changed);
+ local_optimize_graph(irg);
+ invalidate |= changed;
+ } while (changed);
+
+ if (invalidate) {
+ set_irg_outs_inconsistent(irg);
+ }
+ return invalidate;
+}
+
+/* Creates an ir_graph pass for conv_opt. */
+ir_graph_pass_t *conv_opt_pass(const char *name)
+{
+ ir_graph_pass_t *path = def_graph_pass_ret(name ? name : "conv_opt", conv_opt);
+
+ /* safe to run parallel on all irgs */
+ ir_graph_pass_set_parallel(path, 1);
+
+ return path;