summaryrefslogtreecommitdiffstats
path: root/llvm/test/Instrumentation
Commit message (Collapse)AuthorAgeFilesLines
...
* [msan] Handle x86 vector pack intrinsics.Evgeniy Stepanov2014-06-021-0/+38
| | | | llvm-svn: 210020
* [TSan] Fixup a test case after r209939Alexey Samsonov2014-05-311-3/+3
| | | | llvm-svn: 209945
* [ASan] Use llvm.global_ctors to insert init-order checking calls into ASan ↵Alexey Samsonov2014-05-291-0/+2
| | | | | | | | | | | | runtime. Don't assume that dynamically initialized globals are all initialized from _GLOBAL__<module_name>I_ function. Instead, scan the llvm.global_ctors and insert poison/unpoison calls to each function there. Patch by Nico Weber! llvm-svn: 209780
* [asancov] Don't emit extra runtime calls when compiling without coverage.Evgeniy Stepanov2014-05-281-0/+4
| | | | llvm-svn: 209721
* [asancov] Emit an initializer passing number of coverage code locations in ↵Evgeniy Stepanov2014-05-271-0/+12
| | | | | | each module. llvm-svn: 209654
* [asan] properly instrument memory accesses that have small alignment ↵Kostya Serebryany2014-05-233-9/+25
| | | | | | (smaller than min(8,size)) by making two checks instead of one. This may slowdown some cases, e.g. long long on 32-bit or wide loads produced after loop unrolling. The benefit is higher sencitivity. llvm-svn: 209508
* [asan] Set debug location in ASan function prologue.Evgeniy Stepanov2014-05-141-0/+33
| | | | | | | | | Most importantly, it gives debug location info to the coverage callback. This change also removes 2 cases of unnecessary setDebugLoc when IRBuilder is created with the same debug location. llvm-svn: 208767
* [asan] Preserve flags in asm instrumentation.Evgeniy Stepanov2014-05-083-36/+36
| | | | | | Patch by Yuri Gorshenin. llvm-svn: 208296
* [msan] Fix -fsanitize=memory -fno-integrated-as.Evgeniy Stepanov2014-05-071-0/+21
| | | | llvm-svn: 208211
* [asan] Add a flag to control asm instrumentation.Evgeniy Stepanov2014-05-074-4/+4
| | | | | | With this change, asm instrumentation is disabled by default. llvm-svn: 208167
* [asan] Fix instrumentation of x86 intel syntax inline assembly.Evgeniy Stepanov2014-04-241-0/+71
| | | | | | Patch by Yuri Gorshenin. llvm-svn: 207092
* Create MCTargetOptions.Evgeniy Stepanov2014-04-234-23/+23
| | | | | | | | | For now it contains a single flag, SanitizeAddress, which enables AddressSanitizer instrumentation of inline assembly. Patch by Yuri Gorshenin. llvm-svn: 206971
* [asan] Support outline instrumentation for wide types and delete dead code, ↵Kostya Serebryany2014-04-221-1/+6
| | | | | | patch by Yuri Gribov llvm-svn: 206883
* [asan] add llvm-ish test for memset/etc instrumentationKostya Serebryany2014-04-211-0/+17
| | | | llvm-svn: 206747
* [msan] Add -msan-instrumentation-with-call-threshold.Evgeniy Stepanov2014-04-181-0/+47
| | | | | | | | | This flag replaces inline instrumentation for checks and origin stores with calls into MSan runtime library. This is a workaround for PR17409. Disabled by default. llvm-svn: 206585
* [asan] one more workaround for PR17409: don't do BB-level coverage ↵Kostya Serebryany2014-04-181-0/+2
| | | | | | instrumentation if there are more than N (=1500) basic blocks. This makes ASanCoverage work on libjpeg_turbo/jchuff.c used by Chrome, which has 1824 BBs llvm-svn: 206564
* [asan] add two new hidden compile-time flags for asan: ↵Kostya Serebryany2014-04-161-0/+25
| | | | | | asan-instrumentation-with-call-threshold and asan-memory-access-callback-prefix. This is part of the workaround for PR17409 (instrument huge functions with callbacks instead of inlined code). These flags will also help us experiment with kasan (kernel-asan) and clang llvm-svn: 206383
* [msan] Relax the test some more.Evgeniy Stepanov2014-03-251-12/+12
| | | | | | This may or may not fix the bots. R204720 did not. llvm-svn: 204721
* [msan] Make some tests less strict.Evgeniy Stepanov2014-03-251-8/+8
| | | | | | This may or may not fix the bots. llvm-svn: 204720
* [msan] More precise instrumentation of select IR.Evgeniy Stepanov2014-03-251-15/+33
| | | | | | | | | Some bits of select result may be initialized even if select condition is not. https://code.google.com/p/memory-sanitizer/issues/detail?id=50 llvm-svn: 204716
* [ASan] Add -asan-module to the ASan .ll tests.Alexander Potapenko2014-03-2016-23/+28
| | | | | | | | After the -asan pass had been split into -asan (function-level) and -asan-module (module-level) some of the tests have silently stopped working, because they didn't instrument the globals anymore. We've decided to have every test using both passes, irrespective of the presence of globals in it. llvm-svn: 204335
* [ASan] Do not instrument globals from the llvm.metadata section.Alexander Potapenko2014-03-201-0/+12
| | | | | | Fixes https://code.google.com/p/address-sanitizer/issues/detail?id=279. llvm-svn: 204331
* Set debug info for instructions inserted in SplitBlockAndInsertIfThen.Evgeniy Stepanov2014-03-191-9/+48
| | | | llvm-svn: 204230
* [msan] Origin tracking with history.Evgeniy Stepanov2014-03-181-0/+34
| | | | | | | | LLVM part of MSan implementation of advanced origin tracking, when we record not only creation point, but all locations where an uninitialized value was stored to memory, too. llvm-svn: 204151
* AddressSanitizer instrumentation for MOV and MOVAPS.Evgeniy Stepanov2014-03-143-0/+243
| | | | | | | | This is an initial version of *Sanitizer instrumentation of assembly code. Patch by Yuri Gorshenin. llvm-svn: 203908
* [msan] Fix handling of byval arguments in VarArg calls.Evgeniy Stepanov2014-03-131-0/+42
| | | | llvm-svn: 203794
* IR: add a second ordering operand to cmpxhg for failureTim Northover2014-03-113-31/+31
| | | | | | | | | | | | | | | The syntax for "cmpxchg" should now look something like: cmpxchg i32* %addr, i32 42, i32 3 acquire monotonic where the second ordering argument gives the required semantics in the case that no exchange takes place. It should be no stronger than the first ordering constraint and cannot be either "release" or "acq_rel" (since no store will have taken place). rdar://problem/15996804 llvm-svn: 203559
* [msan] Handle X86 SIMD bitshift intrinsics.Evgeniy Stepanov2014-03-031-0/+100
| | | | llvm-svn: 202712
* [asan] remove test that should have been removed in r202033Kostya Serebryany2014-02-241-41/+0
| | | | llvm-svn: 202034
* Add back r201608, r201622, r201624 and r201625Rafael Espindola2014-02-191-0/+1
| | | | | | | | | | | | | | r201608 made llvm corretly handle private globals with MachO. r201622 fixed a bug in it and r201624 and r201625 were changes for using private linkage, assuming that llvm would do the right thing. They all got reverted because r201608 introduced a crash in LTO. This patch includes a fix for that. The issue was that TargetLoweringObjectFile now has to be initialized before we can mangle names of private globals. This is trivially true during the normal codegen pipeline (the asm printer does it), but LTO has to do it manually. llvm-svn: 201700
* This reverts commit r201625 and r201624.Rafael Espindola2014-02-191-1/+0
| | | | | | | Since r201608 got reverted, it is not safe to use private linkage in these cases until it is committed back. llvm-svn: 201688
* Now that llvm always does the right thing with private, use it.Rafael Espindola2014-02-191-0/+1
| | | | llvm-svn: 201625
* [asan] support for FreeBSD, LLVM part. patch by Viktor KutuzovKostya Serebryany2014-02-101-0/+29
| | | | llvm-svn: 201067
* [asan] simplify a test Kostya Serebryany2014-01-291-2/+2
| | | | llvm-svn: 200378
* [asan] extend asan-coverage (still experimental).Kostya Serebryany2014-01-171-9/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* [ASan] Fix the tests broken by r198018 to check for private linkage of ↵Alexander Potapenko2013-12-252-5/+5
| | | | | | ASan-generated globals. llvm-svn: 198020
* [asan] don't unpoison redzones on function exit in use-after-return mode.Kostya Serebryany2013-12-231-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Before this change the instrumented code before Ret instructions looked like: <Unpoison Frame Redzones> if (Frame != OriginalFrame) // I.e. Frame is fake <Poison Complete Frame> Now the instrumented code looks like: if (Frame != OriginalFrame) // I.e. Frame is fake <Poison Complete Frame> else <Unpoison Frame Redzones> Reviewers: eugenis Reviewed By: eugenis CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2458 llvm-svn: 197907
* Add an explicit insert point argument to SplitBlockAndInsertIfThen.Evgeniy Stepanov2013-12-191-3/+29
| | | | | | | | Currently SplitBlockAndInsertIfThen requires that branch condition is an Instruction itself, which is very inconvenient, because it is sometimes an Operator, or even a Constant. llvm-svn: 197677
* Teach MemoryBuiltins about address spacesMatt Arsenault2013-12-142-2/+77
| | | | llvm-svn: 197292
* [asan] rewrite asan's stack frame layoutKostya Serebryany2013-12-062-19/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Rewrite asan's stack frame layout. First, most of the stack layout logic is moved into a separte file to make it more testable and (potentially) useful for other projects. Second, make the frames more compact by using adaptive redzones (smaller for small objects, larger for large objects). Third, try to minimized gaps due to large alignments (this is hypothetical since today we don't see many stack vars aligned by more than 32). The frames indeed become more compact, but I'll still need to run more benchmarks before committing, but I am sking for review now to get early feedback. This change will be accompanied by a trivial change in compiler-rt tests to match the new frame sizes. Reviewers: samsonov, dvyukov Reviewed By: samsonov CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2324 llvm-svn: 196568
* [tsan] fix PR18146: sometimes a variable written into vptr could have an ↵Kostya Serebryany2013-12-051-0/+10
| | | | | | integer type (after other optimizations) llvm-svn: 196507
* [tsan] fix instrumentation of vector vptr updates ↵Kostya Serebryany2013-12-021-0/+17
| | | | | | (https://code.google.com/p/thread-sanitizer/issues/detail?id=43) llvm-svn: 196079
* Debug Info: update testing cases to specify the debug info version number.Manman Ren2013-11-221-0/+2
| | | | | | | | We are going to drop debug info without a version number or with a different version number, to make sure we don't crash when we see bitcode files with different debug info metadata format. llvm-svn: 195504
* Introduce two command-line flags for the instrumentation pass to control ↵Peter Collingbourne2013-11-212-111/+256
| | | | | | | | | | | | | | whether the labels of pointers should be ignored in load and store instructions The new command line flags are -dfsan-ignore-pointer-label-on-store and -dfsan-ignore-pointer-label-on-load. Their default value matches the current labelling scheme. Additionally, the function __dfsan_union_load is marked as readonly. Patch by Lorenzo Martignoni! Differential Revision: http://llvm-reviews.chandlerc.com/D2187 llvm-svn: 195382
* [msan] Propagate condition origin in select instruction.Evgeniy Stepanov2013-11-211-0/+7
| | | | llvm-svn: 195349
* Use multiple filecheck prefixes in msan instrumentation tests.Evgeniy Stepanov2013-11-212-72/+57
| | | | llvm-svn: 195342
* [ASan] Fix PR17867 - make sure ASan doesn't crash if use-after-scope and ↵Alexey Samsonov2013-11-182-3/+36
| | | | | | use-after-return are combined. llvm-svn: 195014
* Reapply "[asan] Poor man's coverage that works with ASan"Bob Wilson2013-11-151-0/+13
| | | | | | | | I was able to successfully run a bootstrapped LTO build of clang with r194701, so this change does not seem to be the cause of our failing buildbots. llvm-svn: 194789
* Revert "[asan] Poor man's coverage that works with ASan"Bob Wilson2013-11-151-13/+0
| | | | | | | | | This reverts commit 194701. Apple's bootstrapped LTO builds have been failing, and this change (along with compiler-rt 194702-194704) is the only thing on the blamelist. I will either reappy these changes or help debug the problem, depending on whether this fixes the buildbots. llvm-svn: 194780
* [asan] Poor man's coverage that works with ASanKostya Serebryany2013-11-141-0/+13
| | | | llvm-svn: 194701
OpenPOWER on IntegriCloud