[LLVMdev] llvm memory barrier as a builtin

Mon Ping Wang wangmp at apple.com
Wed Sep 17 10:19:36 PDT 2008


Thanks for the info.  My impression is that __sync_synchronize takes  
no arguments and is the memory barrier, i.e.,
  "llvm.memory.barrier(i1 true,i1 true,i1 true,i1 true,i1 true)".  Is  
that right?  I would like a little finer control to express just a  
write barrier (st-st) or a read barrier.

   -- Mon Ping


On Sep 17, 2008, at 5:50 AM, Andrew Lenharth wrote:

> On Tue, Sep 16, 2008 at 5:42 PM, Mon Ping Wang <wangmp at apple.com>  
> wrote:
>>
>> I would like access to LLVM memory barrier instruction as a built-in
>> from clang, which means that I need a name for it. In gcc, I see  
>> names
>> like __builtin_ia32_mfence but those refers to X86 SSE instruction
>> that we support.  I don't see a gcc name that has the same semantics
>> as our barrier instruction.  For a name,  I was thinking of
>> __builtin_memory_barrier or __builtin_llvm_memory_barrier.  Does
>> anyone object of adding it as built-in or have a better idea for a  
>> name?
>
> __sync_synchronize is the gcc builtin for a memory barrier.
>
> Andrew
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list