llvm-mirror/test/Instrumentation
Evgeniy Stepanov 97d6933f46 [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.

llvm-svn: 169490
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