forked from OSchip/llvm-project
ee6c233ae0
Thread sanitizer instrumentation fails to skip all loads and stores to profile counters. This can happen if profile counter updates are merged: %.sink = phi i64* ... %pgocount5 = load i64, i64* %.sink %27 = add i64 %pgocount5, 1 %28 = bitcast i64* %.sink to i8* call void @__tsan_write8(i8* %28) store i64 %27, i64* %.sink To suppress TSan diagnostics about racy counter updates, make the counter updates atomic when TSan is enabled. If there's general interest in this mode it can be surfaced as a clang/swift driver option. Testing: check-{llvm,clang,profile} rdar://40477803 Differential Revision: https://reviews.llvm.org/D50867 llvm-svn: 339955 |
||
---|---|---|
.. | ||
X86 | ||
PR23499.ll | ||
always_inline.ll | ||
atomic-updates.ll | ||
early-exit.ll | ||
icall.ll | ||
linkage.ll | ||
no-counters.ll | ||
noruntime.ll | ||
platform.ll | ||
profiling.ll |