On 5/17/19 3:23 PM, Eugeniy Paltsev wrote: > Hmmm, > > so load the bool variable from memory is converted to such asm code: > > ----------------->8------------------- > ldb r2,[some_bool_address] > extb_s r2,r2 > ----------------->8------------------- > > Could you please describe that the magic is going on there? > > This extb_s instruction looks completely useless here, according on the LDB description from PRM: > ----------------->8------------------- > LD LDH LDW LDB LDD: > The size of the requested data is specified by the data size field <.zz> and by default, data is zero > extended from the most-significant bit of the data to the most-significant bit of the destination > register. > ----------------->8------------------- > > Am I missing something? @Claudiu is that a target specific optimization/tuning in ARC backend ? > > On Thu, 2019-05-16 at 17:37 +0000, Vineet Gupta wrote: >> On 5/16/19 10:24 AM, Eugeniy Paltsev wrote: >>>> + unsigned int write = 0, exec = 0, mask; >>> >>> Probably it's better to use 'bool' type for 'write' and 'exec' as we really use them as a boolean variables. >> >> Right those are semantics, but the generated code for "bool" is not ideal - given >> it is inherently a "char" it is promoted first to an int with an additional EXTB >> which I really dislike. >> Guess it is more of a style thing. >> >> -Vineet _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc