From 4b54d45d6df2ce9f049ed4fd0008dd758db5bac3 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 8 Oct 2007 18:09:33 +0000 Subject: [PATCH] no need for (strict-)conv before store [r16127] --- ir/be/ia32/ia32_transform.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 5b1ea0853..74603329d 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -1989,6 +1989,11 @@ static ir_node *gen_Store(ir_node *node) { } if (mode_is_float(mode)) { + /* convs (and strict-convs) before stores are unnecessary if the mode + is the same */ + while(is_Conv(val) && mode == get_irn_mode(get_Conv_op(val))) { + val = get_Conv_op(val); + } new_val = be_transform_node(val); if (USE_SSE2(env_cg)) { new_op = new_rd_ia32_xStore(dbgi, irg, block, base, index, new_mem, -- 2.20.1