This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix PR29519 Bad code on MIPS with -fnon-call-exceptions
- From: David Daney <ddaney at avtrex dot com>
- To: Roger Sayle <roger at eyesopen dot com>
- Cc: Richard Sandiford <richard at codesourcery dot com>, gcc-patches at gcc dot gnu dot org
- Date: Mon, 23 Oct 2006 22:30:27 -0700
- Subject: Re: [PATCH] Fix PR29519 Bad code on MIPS with -fnon-call-exceptions
- References: <Pine.LNX.email@example.com>
Roger Sayle wrote:
On Sun, 22 Oct 2006, David Daney wrote:
2006-10-22 Richard Sandiford <firstname.lastname@example.org>
David Daney <email@example.com>
* rtlanal.c (nonzero_address_p): Remove check for values wrapping.
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.
See: http://www.avtrex.com/downloads/results.bz2 (300KB or so)
The bzip2 compressed results of:
$ for file in *.o ; do
objdump -d $file | tail +6 | sed -e 's/[ \t]*.*://' -e 's/[0-9a-f]*
</</' > ../../j/$file.disb
objdump -d ../../native_clean/gcc/$file | tail +6 | sed -e 's/[
\t]*.*://' -e 's/[0-9a-f]* </</'> ../../j/$file.disa;
diff -u ../../j/$file.disb ../../j/$file.disa >> ../../j/results
of the 4.2 branch gcc directory where *.disb are the 'bad' files and
*.disa are those with the patch applied. From i686-pc-linux-gnu
bootstraps. There are many differences shown that are obviously of no
consequence, and a few that may be. But it is unclear to me how
important they are in the overall picture.