llvm-project/llvm/test/Instrumentation/AddressSanitizer
Kostya Serebryany 714c67c31e [asan] extend asan-coverage (still experimental).
- add a mode for collecting per-block coverage (-asan-coverage=2).
   So far the implementation is naive (all blocks are instrumented),
   the performance overhead on top of asan could be as high as 30%.
 - Make sure the one-time calls to __sanitizer_cov are moved to function buttom,
   which in turn required to copy the original debug info into the call insn.

Here is the performance data on SPEC 2006
(train data, comparing asan with asan-coverage={0,1,2}):

                             asan+cov0     asan+cov1      diff 0-1    asan+cov2       diff 0-2      diff 1-2
       400.perlbench,        65.60,        65.80,         1.00,        76.20,         1.16,         1.16
           401.bzip2,        65.10,        65.50,         1.01,        75.90,         1.17,         1.16
             403.gcc,         1.64,         1.69,         1.03,         2.04,         1.24,         1.21
             429.mcf,        21.90,        22.60,         1.03,        23.20,         1.06,         1.03
           445.gobmk,       166.00,       169.00,         1.02,       205.00,         1.23,         1.21
           456.hmmer,        88.30,        87.90,         1.00,        91.00,         1.03,         1.04
           458.sjeng,       210.00,       222.00,         1.06,       258.00,         1.23,         1.16
      462.libquantum,         1.73,         1.75,         1.01,         2.11,         1.22,         1.21
         464.h264ref,       147.00,       152.00,         1.03,       160.00,         1.09,         1.05
         471.omnetpp,       115.00,       116.00,         1.01,       140.00,         1.22,         1.21
           473.astar,       133.00,       131.00,         0.98,       142.00,         1.07,         1.08
       483.xalancbmk,       118.00,       120.00,         1.02,       154.00,         1.31,         1.28
            433.milc,        19.80,        20.00,         1.01,        20.10,         1.02,         1.01
            444.namd,        16.20,        16.20,         1.00,        17.60,         1.09,         1.09
          447.dealII,        41.80,        42.20,         1.01,        43.50,         1.04,         1.03
          450.soplex,         7.51,         7.82,         1.04,         8.25,         1.10,         1.05
          453.povray,        14.00,        14.40,         1.03,        15.80,         1.13,         1.10
             470.lbm,        33.30,        34.10,         1.02,        34.10,         1.02,         1.00
         482.sphinx3,        12.40,        12.30,         0.99,        13.00,         1.05,         1.06

llvm-svn: 199488
2014-01-17 11:00:30 +00:00
..
X86 TBAA: handle scalar TBAA format and struct-path aware TBAA format. 2013-09-27 18:34:27 +00:00
adaptive_global_redzones.ll [asan] adaptive redzones for globals (the larger the global the larger is the redzone) 2013-01-24 10:35:40 +00:00
asan-vs-gvn.ll [asan] Optimize accesses to global arrays with constant index 2013-10-16 14:06:14 +00:00
basic.ll [asan] rewrite asan's stack frame layout 2013-12-06 09:00:17 +00:00
coverage.ll [asan] extend asan-coverage (still experimental). 2014-01-17 11:00:30 +00:00
debug_info.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
different_scale_and_offset.ll Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
do-not-instrument-internal-globals.ll [ASan] Fix the tests broken by r198018 to check for private linkage of ASan-generated globals. 2013-12-25 17:06:04 +00:00
do-not-touch-odr-global.ll
do-not-touch-threadlocal.ll [asan] do not instrument threadlocal globals, this is buggy 2011-11-23 02:10:54 +00:00
instrument-no-return.ll Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
instrument_global.ll [asan] Optimize accesses to global arrays with constant index 2013-10-16 14:06:14 +00:00
instrument_initializer_metadata.ll [ASan] emit instrumentation for initialization order checking by default 2013-03-14 12:38:58 +00:00
instrument_load_then_store.ll Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
keep-instrumented_functions.ll [asan] add option -asan-keep-uninstrumented-functions 2013-06-26 09:18:17 +00:00
lifetime-uar.ll [ASan] Fix PR17867 - make sure ASan doesn't crash if use-after-scope and use-after-return are combined. 2013-11-18 14:53:55 +00:00
lifetime.ll [ASan] Fix PR17867 - make sure ASan doesn't crash if use-after-scope and use-after-return are combined. 2013-11-18 14:53:55 +00:00
stack-poisoning.ll [asan] don't unpoison redzones on function exit in use-after-return mode. 2013-12-23 14:15:08 +00:00
stack_layout.ll [ASan] Fix the tests broken by r198018 to check for private linkage of ASan-generated globals. 2013-12-25 17:06:04 +00:00
test64.ll Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00