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: [PATCH] Fix PR29519 Bad code on MIPS with -fnon-call-exceptions


Roger Sayle wrote:
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.


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
done


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.

David Daney




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