[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)
commitb8837ab8fc22bc9c1d23577e4cdfb732f710478f
tree27174ce10d3d571ef69dbb0cbffc8c7a47e34899
parent319bb399233d3ee67233aa29235c8ad2148fb77d
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170530 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/MemorySanitizer.cpp
test/Instrumentation/MemorySanitizer/msan_basic.ll