]> granicus.if.org Git - clang/commit
[Intrin.h] Use compiler builtins to model memory barriers
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 16 Jul 2015 03:13:02 +0000 (03:13 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 16 Jul 2015 03:13:02 +0000 (03:13 +0000)
commit2e7e2fb00424f9dd27642b7fdc1f2d1fc2bc3328
tree00de8fa6dfc9cf5b06ee6a3fd4044f68e5cfdc07
parentbba7fea0d03ff10b44bac565c22ee6db5b400192
[Intrin.h] Use compiler builtins to model memory barriers

_ReadBarrier, _WriteBarrier, and _ReadWriteBarrier are essentially
memory barriers of one form or another.  Model these as
atomic_signal_fence(ATOMIC_SEQ_CST).

__faststorefence is a curious intrinsic.  It's single purpose seems to
an alternative to mfence when that instruction is slow.  However, mfence
is not always slow and is, in general, preferable to a 'lock or'
sequence on certain CPUs.  Give the compiler freedom to select the best
sequence to get a fence.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@242378 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Headers/Intrin.h