This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR29519 Bad code on MIPS with -fnon-call-exceptions
- From: Roger Sayle <roger at eyesopen dot com>
- To: David Daney <ddaney at avtrex dot com>
- Cc: Richard Sandiford <richard at codesourcery dot com>, <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 23 Oct 2006 21:20:42 -0600 (MDT)
- Subject: Re: [PATCH] Fix PR29519 Bad code on MIPS with -fnon-call-exceptions
Hi David,
On Sun, 22 Oct 2006, David Daney wrote:
> 2006-10-22 Richard Sandiford <richard@codesourcery.com>
> David Daney <ddaney@avtrex.com>
>
> PR middle-end/29519
> * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
:REVIEWMAIL:
This is ugly. I agree with you and Richard that this optimization isn't
safe unless we can somehow prevent the RTL optimizers from creating the
problematic RTL that they currently do. But I also worry how much benefit
some platforms get from the current unsafe transformation, and whether
there'd be an observable performance degradation with this fix.
I think its best to apply this patch to mainline to allow the benchmarking
folks test whether there's any change. Likewise if someone could check
whether there are any/many code generation differences in cc1 files (or
similar), that'd go some way to silencing my potential concerns.
Only after this has been on mainline for a while without problems or
performance issues, should we consider backporting it to the 4.2 branch.
Does this sound reasonable? I'll try and figure out if nonzero_address_p
can be generalized to rtx_expr_nonzero_p (matching the tree-level function
tree_expr_nonzero_p) and used instead by the current RTL simplification
code.
Thanks again to both you and Richard S for investigating this failure.
Ok for mainline.
Roger
--