diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-07-16 03:13:02 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-07-16 03:13:02 +0000 |
commit | 6b8e29708932a08c20794f3ea96099f3dfa89573 (patch) | |
tree | 965365b63c4826e0da605174a6b8837cd05097d2 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 05fc0f25d67a815d822ac3139e5c74110280600a (diff) | |
download | llvm-6b8e29708932a08c20794f3ea96099f3dfa89573.zip llvm-6b8e29708932a08c20794f3ea96099f3dfa89573.tar.gz llvm-6b8e29708932a08c20794f3ea96099f3dfa89573.tar.bz2 |
[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.
llvm-svn: 242378
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions