llvm-project/llvm/lib
Alexander Potapenko c1c4c9a494 [MSan] another take at instrumenting inline assembly - now with calls
Turns out it's not always possible to figure out whether an asm()
statement argument points to a valid memory region.
One example would be per-CPU objects in the Linux kernel, for which the
addresses are calculated using the FS register and a small offset in the
.data..percpu section.
To avoid pulling all sorts of checks into the instrumentation, we replace
actual checking/unpoisoning code with calls to
msan_instrument_asm_load(ptr, size) and
msan_instrument_asm_store(ptr, size) functions in the runtime.

This patch doesn't implement the runtime hooks in compiler-rt, as there's
been no demand in assembly instrumentation for userspace apps so far.

llvm-svn: 345702
2018-10-31 09:32:47 +00:00
..
Analysis ADT/STLExtras: Introduce llvm::empty; NFC 2018-10-31 00:23:23 +00:00
AsmParser Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
BinaryFormat Revert r343317 2018-09-28 17:01:50 +00:00
Bitcode Revert "[ThinLTO] Fix a crash in lazy loading of Metadata" 2018-10-23 23:00:29 +00:00
CodeGen ADT/STLExtras: Introduce llvm::empty; NFC 2018-10-31 00:23:23 +00:00
DebugInfo [DWARF] Revert r345546: Refactor range list extraction and dumping 2018-10-31 01:12:58 +00:00
Demangle Port libcxxabi r344607 into llvm 2018-10-17 18:50:25 +00:00
ExecutionEngine [ORC] Fix hex printing of uint64_t values. 2018-10-31 05:16:14 +00:00
FuzzMutate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Fuzzer
IR Use llvm::any_of instead std::any_of. NFC 2018-10-31 00:31:06 +00:00
IRReader
LTO [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
LineEditor
Linker llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
MC [ARM64][Windows] MCLayer support for exception handling 2018-10-27 06:13:06 +00:00
Object llvm-ar: Darwin archive format fixes. 2018-10-10 21:07:02 +00:00
ObjectYAML Fix printing bug in pdb2yaml. 2018-10-30 18:25:38 +00:00
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Passes Revert "[PassManager/Sanitizer] Enable usage of ported AddressSanitizer passes with -fsanitize=address" 2018-10-26 22:51:51 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support Add parens to fix incorrect assert check. 2018-10-29 21:21:55 +00:00
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
Target [ARM64] [Windows] Exception handling support in frame lowering 2018-10-31 09:27:01 +00:00
Testing Fix error with SmallString implicit conversion. 2018-09-06 22:47:32 +00:00
ToolDrivers [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Transforms [MSan] another take at instrumenting inline assembly - now with calls 2018-10-31 09:32:47 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] Use std::errc::invalid_argument instead of std::errc::bad_message 2018-10-26 18:25:27 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
LLVMBuild.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00