mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
4031b194ac
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 |
||
---|---|---|
.. | ||
AddressSanitizer.cpp | ||
BlackList.cpp | ||
BlackList.h | ||
BoundsChecking.cpp | ||
CMakeLists.txt | ||
EdgeProfiling.cpp | ||
GCOVProfiling.cpp | ||
Instrumentation.cpp | ||
LLVMBuild.txt | ||
Makefile | ||
MaximumSpanningTree.h | ||
MemorySanitizer.cpp | ||
OptimalEdgeProfiling.cpp | ||
PathProfiling.cpp | ||
ProfilingUtils.cpp | ||
ProfilingUtils.h | ||
ThreadSanitizer.cpp |