use ir_vfprintf in the panic() function
[libfirm] / ir / opt / ifconv.h
index ee80c14..95c4614 100644 (file)
  * of the current architecture.
  * If it returns non-zero, a mux is created, else the code
  * is not modified.
+ * @param sel        A selector of a Cond.
+ * @param phi_list   List of Phi nodes about to be converted (linked via link field)
+ * @param i          First data predecessor involved in if conversion
+ * @param j          Second data predecessor involved in if conversion
  */
-typedef int (*arch_allow_mux_func)(ir_node *sel, ir_node *false_res, ir_node *true_res);
+typedef int (*arch_allow_ifconv_func)(ir_node *sel, ir_node* phi_list, int i, int j);
 
 /**
  * The parameters structure.
@@ -35,15 +39,19 @@ typedef struct _opt_if_conv_info_t {
   int                 max_depth;    /**< The maximum depth up to which expressions
                                          are examined when it has to be decided if they
                                          can be placed into another block. */
-  arch_allow_mux_func allow_mux;    /**< Evaluator function, if not set all possible Mux
+  arch_allow_ifconv_func allow_ifconv; /**< Evaluator function, if not set all possible Psi
                                          nodes will be created. */
 } opt_if_conv_info_t;
 
 /**
  * Perform If conversion on a graph.
+ *
  * @param irg The graph.
  * @param params The parameters for the if conversion.
+ *
+ * Cannot handle blocks with Bad control predecessors, so call it after control
+ * flow optimization.
  */
 void opt_if_conv(ir_graph *irg, const opt_if_conv_info_t *params);
 
-#endif
+#endif /* _FIRM_IF_CONV_H */