Create clean register requirements for Phis, otherwise reg_reqs_equal() and maybe...
[libfirm] / ir / opt / convopt.c
index cab0f41..a7f481c 100644 (file)
@@ -49,6 +49,7 @@
 #include "iredges_t.h"
 #include "irgwalk.h"
 #include "irprintf.h"
+#include "irpass.h"
 
 DEBUG_ONLY(static firm_dbg_module_t *dbg);
 
@@ -160,7 +161,7 @@ int get_conv_costs(const ir_node *node, ir_mode *dest_mode)
 static ir_node *place_conv(ir_node *node, ir_mode *dest_mode)
 {
        ir_node *block = get_nodes_block(node);
-       ir_node *conv = new_r_Conv(current_ir_graph, block, node, dest_mode, 0);
+       ir_node *conv = new_r_Conv(block, node, dest_mode);
        return conv;
 }
 
@@ -300,3 +301,9 @@ int conv_opt(ir_graph *irg)
        }
        return invalidate;
 }
+
+/* Creates an ir_graph pass for conv_opt. */
+ir_graph_pass_t *conv_opt_pass(const char *name)
+{
+       return def_graph_pass_ret(name ? name : "conv_opt", conv_opt);
+}  /* conv_opt_pass */