Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C > Re: Example of ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 5 of 9 Topic 26045 of 26972
Post > Topic >>

Re: Example of the optimiser recognising a pattern

by "Bartc" <bc@[EMAIL PROTECTED] > May 3, 2008 at 08:12 AM

"Tomás Ó hÉilidhe" <toe@[EMAIL PROTECTED]
> wrote in message
news:851bdee4-c15c-4e07-bc62-166b346d2651@[EMAIL PROTECTED]
> Ian Collins:
>
>> > Suprisingly, the compiler produced more efficient code for the
latter,
>> > presumably because it recognises the pattern of " x &= ~y" for
>> > clearing a single bit.
>>
>> Odd, is x an unsigned 8 bit type?
>
>
> Yes, it is.
>
>
>> If so, the two expressions should
>> generate identical code.
>
>
> If I do:
>
>    y &= ~0x08u;
>
> then I get the following assembler:
>
>    BCF y, 0x3    /* Clear the 4th bit of y */
>
> If I do:
>
>    y &= 0x7Fu;
>
> then I get the following assembler:
>
>    MOVLW 0x7f     /* Load the ac***ulator with 0x7f */
>    ANDWF y, F     /* AND y with the ac***ulator
>                      and store the result in y      */

(You meant 0xF7 here?)

Typically a compiler will reduce ~0x8u down to 0xF7u anyway, so there 
shouldn't be a difference.

Unless ~0x8u actually generates 0xFFF7u? What's the default uint size on
this compiler? What does y &= 0xFFF7u compile to, if anything? What about
y
&= 0x0A?

Or possibly it's just a quirk in the compiler's optimiser. File a bug
re****t.

-- Bartc
 




 9 Posts in Topic:
Example of the optimiser recognising a pattern
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-02 14:59:33 
Re: Example of the optimiser recognising a pattern
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-02 15:20:39 
Re: Example of the optimiser recognising a pattern
Ian Collins <ian-news@  2008-05-03 11:23:54 
Re: Example of the optimiser recognising a pattern
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-02 16:55:43 
Re: Example of the optimiser recognising a pattern
"Bartc" <bc@  2008-05-03 08:12:42 
Re: Example of the optimiser recognising a pattern
vippstar@[EMAIL PROTECTED  2008-05-03 07:16:16 
Re: Example of the optimiser recognising a pattern
Andrey Tarasevich <and  2008-05-03 09:45:25 
Re: Example of the optimiser recognising a pattern
vippstar@[EMAIL PROTECTED  2008-05-03 09:48:17 
Re: Example of the optimiser recognising a pattern
Andrey Tarasevich <and  2008-05-03 10:09:19 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 21:32:29 CDT 2008.