llvm-capstone/llvm
Evgeniy Stepanov c5e7f56249 ARM MTE stack sanitizer.
Add "memtag" sanitizer that detects and mitigates stack memory issues
using armv8.5 Memory Tagging Extension.

It is similar in principle to HWASan, which is a software implementation
of the same idea, but there are enough differencies to warrant a new
sanitizer type IMHO. It is also expected to have very different
performance properties.

The new sanitizer does not have a runtime library (it may grow one
later, along with a "debugging" mode). Similar to SafeStack and
StackProtector, the instrumentation pass (in a follow up change) will be
inserted in all cases, but will only affect functions marked with the
new sanitize_memtag attribute.

Reviewers: pcc, hctim, vitalybuka, ostannard

Subscribers: srhines, mehdi_amini, javed.absar, kristof.beyls, hiraditya, cryptoad, steven_wu, dexonsmith, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

llvm-svn: 366123
2019-07-15 20:02:23 +00:00
..
benchmarks
bindings [IR/DIVar] Add the flag for params that have unmodified value 2019-06-26 11:19:26 +00:00
cmake [cmake] Don't set install rules for tblgen if building utils is disabled 2019-07-15 19:04:04 +00:00
docs ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
examples [ORC] Add custom IR compiler configuration to LLJITBuilder to enable obj caches. 2019-07-10 17:24:24 +00:00
include ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
lib ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
projects
resources
runtimes
test ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
tools Recommit r366052 "[obj2yaml] - Rework tool's error reporting logic for ELF target." 2019-07-15 11:53:39 +00:00
unittests [FileCheck] Store line numbers as optional values 2019-07-15 19:04:56 +00:00
utils ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Add support for building with Python 3 2019-07-10 19:31:25 +00:00
CODE_OWNERS.TXT Update email address in CODE_OWNERS 2019-07-01 16:01:15 +00:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.