On Thu, Aug 16, 2007 at 08:50:30PM -0700, Linus Torvalds wrote:
> Just try it yourself:
> 
>       volatile int i;
>       int j;
> 
>       int testme(void)
>       {
>               return i <= 1;
>       }
> 
>       int testme2(void)
>       {
>               return j <= 1;
>       }
> 
> and compile with all the optimizations you can.
> 
> I get:
> 
>       testme:
>               movl    i(%rip), %eax
>               subl    $1, %eax
>               setle   %al
>               movzbl  %al, %eax
>               ret
> 
> vs
> 
>       testme2:
>               xorl    %eax, %eax
>               cmpl    $1, j(%rip)
>               setle   %al
>               ret
> 
> (now, whether that "xorl + setle" is better than "setle + movzbl", I don't 
> really know - maybe it is. But that's not thepoint. The point is the 
> difference between
> 
>                 movl    i(%rip), %eax
>                 subl    $1, %eax
> 
> and
> 
>                 cmpl    $1, j(%rip)

gcc bugzilla bug #33102, for whatever that ends up being worth.  ;-)

                                                        Thanx, Paul
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to