llvm-project/llvm/lib/Transforms
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
..
AggressiveInstCombine [Aggressive InstCombine] Move C bindings to their own header file. 2018-09-05 11:41:12 +00:00
Coroutines [TI removal] Make `getTerminator()` return a generic `Instruction`. 2018-10-15 10:42:50 +00:00
Hello
IPO ADT/STLExtras: Introduce llvm::empty; NFC 2018-10-31 00:23:23 +00:00
InstCombine [InstCombine] use 'match' to reduce code; NFC 2018-10-30 20:52:25 +00:00
Instrumentation [MSan] another take at instrumenting inline assembly - now with calls 2018-10-31 09:32:47 +00:00
ObjCARC [TI removal] Switch ObjCARC code to directly use the nice range-based 2018-10-18 00:38:34 +00:00
Scalar ADT/STLExtras: Introduce llvm::empty; NFC 2018-10-31 00:23:23 +00:00
Utils ADT/STLExtras: Introduce llvm::empty; NFC 2018-10-31 00:23:23 +00:00
Vectorize [TTI] Fix uses of SK_ExtractSubvector shuffle costs (PR39368) 2018-10-30 18:10:02 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00