[LLVMdev] llvm memory barrier as a builtin

Mon Ping Wang monping at apple.com
Wed Sep 17 10:10:50 PDT 2008


By semantic difference, I only meant that the memory barrier is more  
generic that mfence, i..e., it has a different signature that allows  
us to express various kinds of memory barriers.

   -- Mon Ping


On Sep 16, 2008, at 11:38 PM, Eli Friedman wrote:

> On Tue, Sep 16, 2008 at 11:22 PM, Duncan Sands <baldrick at free.fr>  
> 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?
>>
>> What are the semantic differences?
>
> As far as I know, there isn't a difference, just that the intrinsic
> isn't platform-specific. I think SSE2 mfence is equivalent to
> "llvm.memory.barrier(i1 true,i1 true,i1 true,i1 true,i1 true)".
>
> -Eli
> _______________________________________________
> 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