[NewPM] Port HWASan and Kernel HWASan
authorLeonard Chan <leonardchan@google.com>
Tue, 14 May 2019 21:17:21 +0000 (21:17 +0000)
committerLeonard Chan <leonardchan@google.com>
Tue, 14 May 2019 21:17:21 +0000 (21:17 +0000)
commit0cdd3b1d817a8c366e10a1240589dd641b30b9bb
tree2db00ddd8a7a27b24f2a60882cb40cd2413d8132
parent7baf528aba22edcd0561bdc823c2d7c44aea4395
[NewPM] Port HWASan and Kernel HWASan

Port hardware assisted address sanitizer to new PM following the same guidelines as msan and tsan.

Changes:
- Separate HWAddressSanitizer into a pass class and a sanitizer class.
- Create new PM wrapper pass for the sanitizer class.
- Use the getOrINsert pattern for some module level initialization declarations.
- Also enable kernel-kwasan in new PM
- Update llvm tests and add clang test.

Differential Revision: https://reviews.llvm.org/D61709

llvm-svn: 360707
clang/lib/CodeGen/BackendUtil.cpp
clang/test/CodeGen/hwasan-new-pm.c [new file with mode: 0644]
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Transforms/Instrumentation.h
llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h [new file with mode: 0644]
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
llvm/lib/Transforms/Instrumentation/Instrumentation.cpp
llvm/test/Instrumentation/HWAddressSanitizer/basic.ll