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]

Re: 3.0 vs 3.0.1 on oopack's Max


> 
> I hope that some of the gcc developers (perhaps Jan Hubicka?) may take
> care of this disappointing behavior!
:) OK, it looks the problem is in the setcc code that causes partial
register stall.
Otherwise the 3.1 code looks good to me and also perofrms quite happily
on Athlon that is free of the issue.

The problem is relativly old - you have QImode register as result of setcc.
The AND following it gets combined to have (SUBREG:SI (QIreg)) argument.
In most of cases GCC gets around this by avoiding 8bit computations at all,
but setcc must be 8bit.  Richard has recently changes way setcc is expanded,
so it is optimized better. One of better optimizations is this one and
sadly it is not very lucky...

I am not quite sure how to avoid gcc from doing this optimization.
I will take a look overnight.

Honza
> 
> Regards,
> Paolo Carlini.


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