llvm/lib/Transforms/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.cpp [asan] add experimental -asan-realign-stack option (true by default, which does not change the current behavior) 2012-12-04 06:14:01 +00:00
BlackList.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
BlackList.h [ASan]: Add minimalistic support for turning off initialization-order checking for globals of specified types. Tests for this behavior will go to ASan test suite in compiler-rt. 2012-11-12 14:00:01 +00:00
BoundsChecking.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
CMakeLists.txt Initial commit of MemorySanitizer. 2012-11-29 09:57:20 +00:00
EdgeProfiling.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
GCOVProfiling.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
Instrumentation.cpp Initial commit of MemorySanitizer. 2012-11-29 09:57:20 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MaximumSpanningTree.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
MemorySanitizer.cpp [msan] Do not store origin for clean values. 2012-12-06 11:41:03 +00:00
OptimalEdgeProfiling.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
PathProfiling.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
ProfilingUtils.cpp Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! 2012-10-24 17:25:11 +00:00
ProfilingUtils.h Add a function for profiling to run at shutdown. Unlike the existing API, this 2011-04-08 22:19:52 +00:00
ThreadSanitizer.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00