This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]