From: Manuel Mohr Date: Mon, 19 Sep 2011 09:30:34 +0000 (+0200) Subject: Turn off CSE when creating Projs during double word lowering. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=35510bc1cea86ecdfc3299ea2d0d709714cc3e96;p=libfirm Turn off CSE when creating Projs during double word lowering. --- diff --git a/ir/lower/lower_dw.c b/ir/lower/lower_dw.c index 7dc325402..0f54d3969 100644 --- a/ir/lower/lower_dw.c +++ b/ir/lower/lower_dw.c @@ -1918,6 +1918,7 @@ static void lower_Start(ir_node *node, ir_mode *high_mode) ir_mode *mode_h; ir_node *res_low; ir_node *res_high; + int old_cse; dbg_info *dbg; if (!is_Proj(proj)) @@ -1935,6 +1936,9 @@ static void lower_Start(ir_node *node, ir_mode *high_mode) continue; } + /* Switch off CSE or we might get an already existing Proj. */ + old_cse = get_opt_cse(); + set_opt_cse(0); dbg = get_irn_dbg_info(proj); if (env->params->little_endian) { res_low = new_rd_Proj(dbg, pred, mode_l, new_projs[proj_nr]); @@ -1943,6 +1947,7 @@ static void lower_Start(ir_node *node, ir_mode *high_mode) res_high = new_rd_Proj(dbg, pred, mode_h, new_projs[proj_nr]); res_low = new_rd_Proj(dbg, pred, mode_l, new_projs[proj_nr] + 1); } + set_opt_cse(old_cse); ir_set_dw_lowered(proj, res_low, res_high); } }