This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix PR/25677, rare bug in combine
- From: Roger Sayle <roger at eyesopen dot com>
- To: gcc-patches at gcc dot gnu dot org, Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>, Hans-Peter Nilsson <hp at bitrange dot com>
- Date: Fri, 13 Jan 2006 06:27:59 -0700 (MST)
- Subject: Re: Fix PR/25677, rare bug in combine
http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00489.html
> 2005-01-07 Paolo Bonzini <bonzini@gnu.org>
>
> * combine.c (record_value_for_reg): Invalidate registers
> if INSN is null.
> (record_dead_and_set_regs_1): Likewise, by passing them to
> record_value_for_reg.
> (record_dead_and_set_regs): Invalidate stores made by a
> call. We do not combine across a call, but we still
> relied on equivalences.
This is OK for mainline. I agree that implementing the documented
behaviour of record_value_for_reg and overloading the meaning of
insn in record_dead_or_set_regs_1 is the best strategy, though a
new clear_dead_and_set_regs_1 function might also have been reasonable.
Don't forget to mention to "PR rtl-optimization/25677" in the
ChangeLog entry.
Thanks for fixing this.
Roger
--