X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flower%2Flower_mode_b.c;h=a6c0f753ef0c8fb295788139afa76e4b7b572cf4;hb=288b414e4d82e0aa0d4b4348d8c387db02142cdb;hp=a186ce3eecfd551010ac93c830a42430e9fc39b7;hpb=4b734653b3f11a3182963369bb58980e4d5a62cb;p=libfirm diff --git a/ir/lower/lower_mode_b.c b/ir/lower/lower_mode_b.c index a186ce3ee..a6c0f753e 100644 --- a/ir/lower/lower_mode_b.c +++ b/ir/lower/lower_mode_b.c @@ -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);