[llvm-commits] [llvm-gcc-4.2] r93409 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Jim Grosbach grosbach at apple.com
Thu Jan 14 15:18:23 PST 2010


On Jan 14, 2010, at 2:03 AM, Duncan Sands wrote:

> Hi Evan,
>
>> Add missing memory barrier after binary atomic builtin. r74403  
>> apparently left this out by mistake. x86 target will optimize it  
>> away but it's looking for the barrier after the operation.
>
> what do you mean by "it's looking for the barrier after the  
> operation"?
>
>> +#if defined(TARGET_ARM) && defined(CONFIG_DARWIN_H)
>
> Should this really be conditioned on the OS (darwin)?  After all, how
> barriers work should be a processor issue, not an OS one...
>

Unfortunately, it's a bit of both, and there's not a really good way  
of expressing everything right now. For example, on ARMv7, which  
instructions should be used, and which sharability regions should be  
specified, can vary depending on thing like whether the system is  
multi-core or not, whether synchronization with peripherals is  
required, etc.. For the time being, the OS+Target pair is being used  
to express that. I'm not really fond of that aspect, but don't have a  
strong answer for a replacement.

-Jim



More information about the llvm-commits mailing list