diff options
author | Philip Pfaffe <philip.pfaffe@gmail.com> | 2019-01-03 13:42:44 +0000 |
---|---|---|
committer | Philip Pfaffe <philip.pfaffe@gmail.com> | 2019-01-03 13:42:44 +0000 |
commit | b39a97c8f6c02f5ce9d048849dfae4c3ee26d5ee (patch) | |
tree | 2c869409a8f53707cc504dbbbf57ed11d9a668cb /llvm/lib/Transforms/Instrumentation/Instrumentation.cpp | |
parent | b0826bdffe48b91d9d1dad7437e2266635c5b7dd (diff) | |
download | bcm5719-llvm-b39a97c8f6c02f5ce9d048849dfae4c3ee26d5ee.tar.gz bcm5719-llvm-b39a97c8f6c02f5ce9d048849dfae4c3ee26d5ee.zip |
[NewPM] Port Msan
Summary:
Keeping msan a function pass requires replacing the module level initialization:
That means, don't define a ctor function which calls __msan_init, instead just
declare the init function at the first access, and add that to the global ctors
list.
Changes:
- Pull the actual sanitizer and the wrapper pass apart.
- Add a newpm msan pass. The function pass inserts calls to runtime
library functions, for which it inserts declarations as necessary.
- Update tests.
Caveats:
- There is one test that I dropped, because it specifically tested the
definition of the ctor.
Reviewers: chandlerc, fedor.sergeev, leonardchan, vitalybuka
Subscribers: sdardis, nemanjai, javed.absar, hiraditya, kbarton, bollu, atanasyan, jsji
Differential Revision: https://reviews.llvm.org/D55647
llvm-svn: 350305
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/Instrumentation.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/Instrumentation.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp b/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp index eb6a3730ad9..5828019a03a 100644 --- a/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp +++ b/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp @@ -111,7 +111,7 @@ void llvm::initializeInstrumentation(PassRegistry &Registry) { initializePGOIndirectCallPromotionLegacyPassPass(Registry); initializePGOMemOPSizeOptLegacyPassPass(Registry); initializeInstrProfilingLegacyPassPass(Registry); - initializeMemorySanitizerPass(Registry); + initializeMemorySanitizerLegacyPassPass(Registry); initializeHWAddressSanitizerPass(Registry); initializeThreadSanitizerPass(Registry); initializeSanitizerCoverageModulePass(Registry); |