llvm-project/llvm/test/Instrumentation
Alexander Potapenko 5241081532 [sanitizer-coverage] Change cmp instrumentation to distinguish const operands
This implementation of SanitizerCoverage instrumentation inserts different
callbacks depending on constantness of operands:

  1. If both operands are non-const, then a usual
     __sanitizer_cov_trace_cmp[1248] call is inserted.
  2. If exactly one operand is const, then a
     __sanitizer_cov_trace_const_cmp[1248] call is inserted. The first
     argument of the call is always the constant one.
  3. If both operands are const, then no callback is inserted.

This separation comes useful in fuzzing when tasks like "find one operand
of the comparison in input arguments and replace it with the other one"
have to be done. The new instrumentation allows us to not waste time on
searching the constant operands in the input.

Patch by Victor Chibotaru.

llvm-svn: 310600
2017-08-10 15:00:13 +00:00
..
AddressSanitizer [asan] Fix instruction emission ordering with dynamic shadow. 2017-08-09 17:59:43 +00:00
BoundsChecking
DataFlowSanitizer Add element-atomic mem intrinsic canary tests for Dataflow Sanitizer. 2017-07-18 01:06:52 +00:00
EfficiencySanitizer Add element-atomic mem intrinsic canary tests for Efficiency Sanitizer. 2017-07-18 01:06:53 +00:00
InstrProfiling [InstrProf] Don't take the address of alwaysinline available_externally functions 2017-06-13 22:12:35 +00:00
MemorySanitizer Add element-atomic mem intrinsic canary tests for Memory Sanitizer. 2017-07-18 01:06:54 +00:00
SanitizerCoverage [sanitizer-coverage] Change cmp instrumentation to distinguish const operands 2017-08-10 15:00:13 +00:00
ThreadSanitizer Enhance synchscope representation 2017-07-11 22:23:00 +00:00