[PATCH] asan: optimization experiments

Dmitry Vyukov dvyukov at google.com
Tue Mar 10 06:22:00 PDT 2015


Hi kcc,

The experiments can be used to evaluate potential optimizations that remove
instrumentation (assess false negatives). Instead of completely removing
some instrumentation, you set Exp to a non-zero value (mask of optimization
experiments that want to remove instrumentation of this instruction).
If Exp is non-zero, this pass will emit special calls into runtime
(e.g. __asan_report_exp_load1 instead of __asan_report_load1). These calls
make runtime terminate the program in a special way (with a different
exit status). Then you run the new compiler on a buggy corpus, collect
the special terminations (ideally, you don't see them at all -- no false
negatives) and make the decision on the optimization.

The exact reaction to experiments in runtime is not implemented in this patch.
It will be defined and implemented in a subsequent patch.

http://reviews.llvm.org/D8198

Files:
  AddressSanitizer.cpp
  lib/asan/asan_interceptors.cc
  lib/asan/asan_interface_internal.h
  lib/asan/asan_poisoning.cc
  lib/asan/asan_report.cc
  lib/asan/asan_rtl.cc
  test/asan/TestCases/Linux/interface_symbols_linux.c

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8198.21571.patch
Type: text/x-patch
Size: 27262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150310/8884c82e/attachment.bin>


More information about the llvm-commits mailing list