[4.1 PATCH] Backport of local alloc fix (PR middle-end/26991)
Jakub Jelinek
jakub@redhat.com
Fri Jun 30 11:39:00 GMT 2006
Hi!
GCC 4.1 miscompiles opts.c (regression from 4.0), it stores into
a .rodata variable.
This bug has been fixed by Bernd on the trunk in February.
Bootstrapped/regtested on 7 linux arches, ok for 4.1?
2006-06-30 Jakub Jelinek <jakub@redhat.com>
PR middle-end/26991
Backport from mainline
2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
PR rtl-optimization/25636
* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
when deciding whether an insn is an initializing insn.
--- gcc/local-alloc.c (revision 111128)
+++ gcc/local-alloc.c (revision 111129)
@@ -962,8 +963,7 @@ update_equiv_regs (void)
/* If we haven't done so, record for reload that this is an
equivalencing insn. */
- if (!reg_equiv[regno].is_arg_equivalence
- && (!MEM_P (x) || rtx_equal_p (src, x)))
+ if (!reg_equiv[regno].is_arg_equivalence)
reg_equiv_init[regno]
= gen_rtx_INSN_LIST (VOIDmode, insn, reg_equiv_init[regno]);
Jakub
More information about the Gcc-patches
mailing list