1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/IR
Evgeniy Stepanov e8363137ea 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
..
AbstractCallSite.cpp
AsmWriter.cpp [ThinLTO] Attempt to recommit r365188 after alignment fix 2019-07-05 15:25:05 +00:00
AttributeImpl.h Extend function attributes bitset size from 64 to 96. 2019-07-13 00:29:03 +00:00
Attributes.cpp ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp [NVPTX] Use atomicrmw fadd instead of intrinsics 2019-07-11 17:11:25 +00:00
BasicBlock.cpp
CMakeLists.txt
Comdat.cpp
ConstantFold.cpp
ConstantFold.h
ConstantRange.cpp [ConstantRange] Add sdiv() support 2019-06-03 18:19:54 +00:00
Constants.cpp
ConstantsContext.h
Core.cpp
DataLayout.cpp Cleanup: llvm::bsearch -> llvm::partition_point after r364719 2019-06-30 11:19:56 +00:00
DebugInfo.cpp
DebugInfoMetadata.cpp Revert "[DwarfDebug] Dump call site debug info" 2019-07-12 09:45:12 +00:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [Remarks][NFC] Move the serialization to lib/Remarks 2019-05-30 21:45:59 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp
Dominators.cpp
Function.cpp Cleanup: llvm::bsearch -> llvm::partition_point after r364719 2019-06-30 11:19:56 +00:00
Globals.cpp Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp Add a transform pass to make the executable semantics of poison explicit in the IR 2019-07-09 18:49:29 +00:00
Instructions.cpp Prepare for making SwitchInstProfUpdateWrapper strict 2019-07-09 05:07:28 +00:00
IntrinsicInst.cpp Teach the IRBuilder about fadd and friends. 2019-07-08 16:18:18 +00:00
IRBuilder.cpp Improve reduction intrinsics by overloading result value. 2019-06-13 09:37:38 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp [LegacyPassManager] Small ModuleCount cleanup 2019-07-12 15:18:29 +00:00
LLVMBuild.txt
LLVMContext.cpp [BPF] add new intrinsics preserve_{array,union,struct}_access_index 2019-07-09 01:51:36 +00:00
LLVMContextImpl.cpp
LLVMContextImpl.h Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
MDBuilder.cpp
Metadata.cpp
MetadataImpl.h
Module.cpp
ModuleSummaryIndex.cpp [ThinLTO] Attempt to recommit r365188 after alignment fix 2019-07-05 15:25:05 +00:00
Operator.cpp
OptBisect.cpp
Pass.cpp
PassInstrumentation.cpp
PassManager.cpp
PassRegistry.cpp
PassTimingInfo.cpp
ProfileSummary.cpp
RemarkStreamer.cpp [Remarks] Extend -fsave-optimization-record to specify the format 2019-06-17 16:06:00 +00:00
SafepointIRVerifier.cpp
Statepoint.cpp
SymbolTableListTraitsImpl.h
Type.cpp Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp Replace three "strip & accumulate" implementations with a single one 2019-07-11 01:14:48 +00:00
ValueSymbolTable.cpp
Verifier.cpp ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00