[LLVMdev] llvm memory barrier as a builtin

Eli Friedman eli.friedman at gmail.com
Tue Sep 16 23:38:28 PDT 2008


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



More information about the llvm-dev mailing list