aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-12-06 11:41:03 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-12-06 11:41:03 +0000
commit4031b194acd50f35b75658f66ee3bb1b4afcfd25 (patch)
treebbcccc2a3fe47d96d3c8d974da061ca8c2f8acc2 /lib/CodeGen/SelectionDAG/TargetLowering.cpp
parent6afe478e005bf9f112b32b7ec25879475adc1915 (diff)
[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
Diffstat (limited to 'lib/CodeGen/SelectionDAG/TargetLowering.cpp')
0 files changed, 0 insertions, 0 deletions