[PATCH] D83867: [TSan] Add option for emitting compound read-write instrumentation

Marco Elver via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 15 06:00:01 PDT 2020


melver created this revision.
melver added reviewers: dvyukov, glider.
Herald added subscribers: llvm-commits, jfb, hiraditya.
Herald added a project: LLVM.

This adds option -tsan-compound-read-before-write to emit different
instrumentation for the write if the read before that write is omitted
from instrumentation. The default TSan runtime currently does not
support the different instrumentation, and the option is disable by
default.

Alternative runtimes, such as the Kernel Concurrency Sanitizer (KCSAN)
can make use of the feature. Indeed, the initial motivation is for use
in KCSAN as it was determined that due to the Linux kernel having a
large number of unaddressed data races, it makes sense to improve
performance and reporting by distinguishing compounded operations. E.g.
the compounded instrumentation is typically emitted for compound
operations such as ++, +=, |=, etc. By emitting different reports, such
data races can automatically be bucketed differently (currently the plan
is to prioritize them).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83867

Files:
  llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
  llvm/test/Instrumentation/ThreadSanitizer/read_before_write.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83867.278159.patch
Type: text/x-patch
Size: 16642 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200715/cf8452d4/attachment.bin>


More information about the llvm-commits mailing list