This is the mail archive of the 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: PR25514: A problem with note distribution in combine

On Tue, 25 Apr 2006, Richard Sandiford wrote:
> 	PR rtl-optimization/25514
> 	* combine.c (replaced_rhs_insn): New variable.
> 	(combine_instructions): Set replaced_rhs_insn when trying to replace
> 	a SET_SRC with a REG_EQUAL note.
> 	(distribute_notes): Use replaced_rhs_insn when determining the live
> 	range of a REG_DEAD register.
> gcc/testsute
> 	* gcc.c-torture/compile/pr25514.c: New test.

This is OK for mainline.  I've confirmed by building a cross compiler
to m68k-linux-gnu that PR25514 is a regression from gcc 3.4.3, which
is able to compile the testcase without the "internal consistency
failure" ICE (that I can reproduce on mainline).

Combine.c changes of this type have been known to expose latent bugs
in the RTL optimizers due to subtle changes in the RTL.  So although
the change itself looks reasonable (and reduces the code in combine!)
let's be on the look out for possible problems on other targets.

I'd appreciate it if someone could fill in the "known to work" and
"known to fail" fields for PR25514, so we can discover which active
branches have regressed.  Once Richard's fix has been on mainline for
a while without problems we can decide what to do about 4.1.2 and 4.0.x
if they are affected.

Thanks for fixing this,


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