aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-08-29 19:40:20 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2004-08-29 19:40:20 +0000
commit5e9f78cc748e907a69955f0b88fecf2686683843 (patch)
tree645bc4e2cc150466118e298ff666849d6252a5c7 /gcc/gcse.c
parent477a21f7f9b31c687d45f1001dd93c90df52cf29 (diff)
downloadgcc-5e9f78cc748e907a69955f0b88fecf2686683843.zip
gcc-5e9f78cc748e907a69955f0b88fecf2686683843.tar.gz
gcc-5e9f78cc748e907a69955f0b88fecf2686683843.tar.bz2
re PR rtl-optimization/16590 (Incorrect execution when compiling with -O2)
PR rtl-optimization/16590 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. PR rtl-optimization/16590 * g++.dg/opt/loop1.C: New test. From-SVN: r86732
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 16d76fe..0d60280 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4463,7 +4463,9 @@ pre_delete (void)
expr->reaching_reg
= gen_reg_rtx (GET_MODE (SET_DEST (set)));
- gcse_emit_move_after (expr->reaching_reg, SET_DEST (set), insn);
+ emit_insn_after (gen_move_insn (SET_DEST (set),
+ expr->reaching_reg),
+ insn);
delete_insn (insn);
occr->deleted_p = 1;
SET_BIT (pre_redundant_insns, INSN_CUID (insn));