#include "irnode_t.h"
#include "ircons_t.h"
+#include "irflag.h"
#include "irgwalk.h"
#include "irtools.h"
#include "iredges.h"
{
ir_graph *irg = current_ir_graph;
ir_node *block = get_nodes_block(node);
- ir_node *conv = new_rd_Conv(NULL, irg, block, node, mode_b, 0);
+ ir_node *conv = new_rd_Conv(NULL, irg, block, node, mode_b);
return conv;
}
ir_node *set = new_rd_Mux(dbgi, irg, block, node, zero, one, mode);
if (mode != config.lowered_mode) {
- set = new_r_Conv(irg, block, set, config.lowered_mode, 0);
+ set = new_r_Conv(irg, block, set, config.lowered_mode);
}
return set;
ir_node *shift_cnt = new_d_Const(dbgi, tv);
if(cmp_mode != mode) {
- a = new_rd_Conv(dbgi, irg, block, a, mode, 0);
- b = new_rd_Conv(dbgi, irg, block, b, mode, 0);
+ a = new_rd_Conv(dbgi, irg, block, a, mode);
+ b = new_rd_Conv(dbgi, irg, block, b, mode);
}
res = new_rd_Sub(dbgi, irg, block, a, b, mode);
config = *nconfig;
lowered_nodes = new_pdeq();
+ /* ensure no optimisation touches muxes anymore */
+ set_irg_state(irg, IR_GRAPH_STATE_KEEP_MUX);
+
ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
+ set_opt_allow_conv_b(0);
irg_walk_graph(irg, clear_links, NULL, NULL);
irg_walk_graph(irg, lower_mode_b_walker, NULL, NULL);