This is the mail archive of the gcc@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 writes:
 > 
 > 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 must admit to being a little perplexed by this.

We have an unsafe optimization that causes bad code to be generated on
at least one platform.  However, we want to continue to perform this
unsafe optimization on our release branch until we are sure that
removing it doesn't cause performance regressions.  And, perhaps, if
removing the optimization does cause performance regressions we won't
remove it, preferring bad code to reduced performance.

Is that a fair summary?  Perhaps I'm misunderstanding what you wrote.

Andrew.


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