[msan] Heuristically instrument unknown intrinsics.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 19 Dec 2012 11:22:04 +0000 (11:22 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 19 Dec 2012 11:22:04 +0000 (11:22 +0000)
commitd7571cd4bcc41f7c84eed730a2cdf3f00751865a
treebc41f1273bb906cac53bab8aea428187e0839250
parentfd41b5b969e3521f5e3ae9bfad6f6f56424355c4
[msan] Heuristically instrument unknown intrinsics.

This changes adds shadow and origin propagation for unknown intrinsics
by examining the arguments and ModRef behaviour. For now, only 3 classes
of intrinsics are handled:
- those that look like simple SIMD store
- those that look like simple SIMD load
- those that don't have memory effects and look like arithmetic/logic/whatever
  operation on simple types.

llvm-svn: 170530
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
llvm/test/Instrumentation/MemorySanitizer/msan_basic.ll