]> granicus.if.org Git - clang/commit
Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which...
authorEli Friedman <eli.friedman@gmail.com>
Wed, 7 Sep 2011 01:41:24 +0000 (01:41 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 7 Sep 2011 01:41:24 +0000 (01:41 +0000)
commitc83b975f1fb9d11e10b5aa25029ae9bb5fa80e07
treebab394c235030f2a825826ecbe699a4bd96abf87
parent268942b22464c7364e2c6868915484cd4b7596f7
Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which will go away).  LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.

There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now.

I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier.  I would appreciate hearing from anyone who is using this intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139216 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGBuiltin.cpp
test/CodeGen/2008-03-05-syncPtr.c
test/CodeGen/2010-01-13-MemBarrier.c
test/CodeGen/Atomics-no64bit.c [deleted file]
test/CodeGen/Atomics.c
test/CodeGen/atomic.c