[DFSan] Add efficient fast16labels instrumentation mode.
authorMatt Morehouse <mascasa@google.com>
Wed, 29 Jul 2020 18:58:14 +0000 (18:58 +0000)
committerMatt Morehouse <mascasa@google.com>
Wed, 29 Jul 2020 18:58:47 +0000 (18:58 +0000)
commite2d0b44a7cd261218c9e527d23eb5d13425afe8b
tree5a7aec6e6ddea9bc4d3aaee5ced53d1e2ee573ac
parentd5c1f686e34fdd9ed8ec9b7a195799baf492e854
[DFSan] Add efficient fast16labels instrumentation mode.

Adds the -fast-16-labels flag, which enables efficient instrumentation
for DFSan when the user needs <=16 labels.  The instrumentation
eliminates most branches and most calls to __dfsan_union or
__dfsan_union_load.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D84371
12 files changed:
clang/docs/DataFlowSanitizer.rst
compiler-rt/lib/dfsan/dfsan.cpp
compiler-rt/lib/dfsan/dfsan_flags.inc
compiler-rt/lib/dfsan/done_abilist.txt
compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.cpp
compiler-rt/lib/fuzzer/dataflow/DataFlow.cpp
compiler-rt/test/dfsan/fast16labels.c
compiler-rt/test/fuzzer/dataflow.test
compiler-rt/test/fuzzer/only-some-bytes-fork.test
compiler-rt/test/fuzzer/only-some-bytes.test
llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
llvm/test/Instrumentation/DataFlowSanitizer/fast16labels.ll [new file with mode: 0644]