llvm-6502/test/Instrumentation
Evgeniy Stepanov 4031b194ac [msan] Do not store origin for clean values.
Instead of unconditionally storing origin with every application store,
only do this when the shadow of the stored value is != 0.

This change also delays instrumentation of stores until after the walk over
function's instructions, because adding new basic blocks confuses InstVisitor.

We only keep 1 origin value per 4 bytes of application memory. This change
fixes the bug when a store of a single clean byte wiped the origin for the
whole 4-byte area.

Since stores of uninitialized values are relatively uncommon, this change
improves performance of track-origins mode by 5% median and by up to 47% on
specs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169490 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-06 11:41:03 +00:00
..
AddressSanitizer ASan: add initial support for handling llvm.lifetime intrinsics in ASan - emit calls into runtime library that poison memory for local variables when their lifetime is over and unpoison memory when their lifetime begins. 2012-12-04 01:34:23 +00:00
BoundsChecking revert r160742: it's breaking CMake build 2012-07-25 18:49:28 +00:00
MemorySanitizer [msan] Do not store origin for clean values. 2012-12-06 11:41:03 +00:00
ThreadSanitizer tsan: instrument atomic nand operation 2012-11-27 08:09:25 +00:00