[PATCH] D18500: [tsan] Add support for OS X OSAtomic* functions

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 27 10:13:44 PDT 2016


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, samsonov, glider, kcc.
kubabrecka added subscribers: llvm-commits, zaks.anna, dcoughlin.

OS X provides atomic functions in `libkern/OSAtomic.h`.  These provide atomic guarantees and they have alternatives which have barrier semantics.  This patch adds proper TSan support for these functions (all from `libkern/OSAtomic.h`):

- OSAtomicAdd32
- OSAtomicAdd32Barrier
- OSAtomicAdd64
- OSAtomicAdd64Barrier
- OSAtomicAnd32
- OSAtomicAnd32Barrier
- OSAtomicAnd32Orig
- OSAtomicAnd32OrigBarrier
- OSAtomicCompareAndSwap32
- OSAtomicCompareAndSwap32Barrier
- OSAtomicCompareAndSwap64
- OSAtomicCompareAndSwap64Barrier
- OSAtomicCompareAndSwapInt
- OSAtomicCompareAndSwapIntBarrier
- OSAtomicCompareAndSwapLong
- OSAtomicCompareAndSwapLongBarrier
- OSAtomicCompareAndSwapPtr
- OSAtomicCompareAndSwapPtrBarrier
- OSAtomicDecrement32
- OSAtomicDecrement32Barrier
- OSAtomicDecrement64
- OSAtomicDecrement64Barrier
- OSAtomicDequeue
- OSAtomicEnqueue
- OSAtomicFifoDequeue
- OSAtomicFifoEnqueue
- OSAtomicIncrement32
- OSAtomicIncrement32Barrier
- OSAtomicIncrement64
- OSAtomicIncrement64Barrier
- OSAtomicOr32
- OSAtomicOr32Barrier
- OSAtomicOr32Orig
- OSAtomicOr32OrigBarrier
- OSAtomicTestAndClear
- OSAtomicTestAndClearBarrier
- OSAtomicTestAndSet
- OSAtomicTestAndSetBarrier
- OSAtomicXor32
- OSAtomicXor32Barrier
- OSAtomicXor32Orig
- OSAtomicXor32OrigBarrier


http://reviews.llvm.org/D18500

Files:
  lib/tsan/rtl/tsan_interceptors_mac.cc
  test/tsan/Darwin/osatomics-add.mm
  test/tsan/Darwin/osatomics-list.mm

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18500.51744.patch
Type: text/x-patch
Size: 9945 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160327/a22edbbc/attachment.bin>


More information about the llvm-commits mailing list