- implemented i_mapper_bswap()
[libfirm] / ir / lower / lower_mode_b.c
index a186ce3..a6c0f75 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "irnode_t.h"
 #include "ircons_t.h"
+#include "irflag.h"
 #include "irgwalk.h"
 #include "irtools.h"
 #include "iredges.h"
@@ -404,8 +405,12 @@ void ir_lower_mode_b(ir_graph *irg, const lower_mode_b_config_t *nconfig)
        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);