#include "irdump.h"
#include "debug.h"
-DEBUG_ONLY(firm_dbg_module_t *dbg);
+DEBUG_ONLY(static firm_dbg_module_t *dbg);
/** allow every Psi to be created. */
static int default_allow_ifconv(ir_node *sel, ir_node* phi_list, int i, int j)
/**
* Default options.
*/
-static const opt_if_conv_info_t default_info = {
+static const ir_settings_if_conv_t default_info = {
0, /* doesn't matter for Psi */
default_allow_ifconv
};
static void if_conv_walker(ir_node* block, void* env)
{
- opt_if_conv_info_t* opt_info = env;
+ ir_settings_if_conv_t* opt_info = env;
int arity;
int i;
{
ir_node* t;
ir_node* f;
+ ir_mode* mode;
(void) env;
DB((dbg, LEVEL_3, "Simplify %+F T=%+F F=%+F\n", psi, t, f));
- if (is_Const(t) && is_Const(f)) {
+ mode = get_irn_mode(psi);
+
+ if (is_Const(t) && is_Const(f) && (mode_is_int(mode))) {
ir_node* block = get_nodes_block(psi);
- ir_mode* mode = get_irn_mode(psi);
ir_node* c = get_Psi_cond(psi, 0);
tarval* tv_t = get_Const_tarval(t);
tarval* tv_f = get_Const_tarval(f);
}
-void opt_if_conv(ir_graph *irg, const opt_if_conv_info_t *params)
+void opt_if_conv(ir_graph *irg, const ir_settings_if_conv_t *params)
{
struct obstack obst;
- opt_if_conv_info_t p;
+ ir_settings_if_conv_t p;
/* get the parameters */
p = (params != NULL ? *params : default_info);