SuccessChanges

Summary

  1. Basic MTE stack tagging instrumentation. Summary: Use MTE intrinsics to tag stack variables in functions with sanitize_memtag attribute. Reviewers: pcc, vitalybuka, hctim, ostannard Subscribers: srhines, mgorny, javed.absar, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64173
  2. Basic codegen for MTE stack tagging. Implement IR intrinsics for stack tagging. Generated code is very unoptimized for now. Two special intrinsics, llvm.aarch64.irg.sp and llvm.aarch64.tagp are used to implement a tagged stack frame pointer in a virtual register. Differential Revision: https://reviews.llvm.org/D64172
Revision 366361 by eugenis:
Basic MTE stack tagging instrumentation.

Summary:
Use MTE intrinsics to tag stack variables in functions with
sanitize_memtag attribute.

Reviewers: pcc, vitalybuka, hctim, ostannard

Subscribers: srhines, mgorny, javed.absar, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64173
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.h (diff)llvm.src/lib/Target/AArch64/AArch64.h
The file was added/llvm/trunk/lib/Target/AArch64/AArch64StackTagging.cppllvm.src/lib/Target/AArch64/AArch64StackTagging.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp (diff)llvm.src/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/CMakeLists.txt (diff)llvm.src/lib/Target/AArch64/CMakeLists.txt
The file was modified/llvm/trunk/test/CodeGen/AArch64/O0-pipeline.ll (diff)llvm.src/test/CodeGen/AArch64/O0-pipeline.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/O3-pipeline.ll (diff)llvm.src/test/CodeGen/AArch64/O3-pipeline.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-dbg.llllvm.src/test/CodeGen/AArch64/stack-tagging-dbg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging.llllvm.src/test/CodeGen/AArch64/stack-tagging.ll
Revision 366360 by eugenis:
Basic codegen for MTE stack tagging.

Implement IR intrinsics for stack tagging. Generated code is very
unoptimized for now.

Two special intrinsics, llvm.aarch64.irg.sp and llvm.aarch64.tagp are
used to implement a tagged stack frame pointer in a virtual register.

Differential Revision: https://reviews.llvm.org/D64172
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAGTargetInfo.h (diff)llvm.src/include/llvm/CodeGen/SelectionDAGTargetInfo.h
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAArch64.td (diff)llvm.src/include/llvm/IR/IntrinsicsAArch64.td
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cpp (diff)llvm.src/lib/Analysis/ValueTracking.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.h (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64MachineFunctionInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64MachineFunctionInfo.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64SelectionDAGInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64SelectionDAGInfo.h
The file was modified/llvm/trunk/test/Analysis/ValueTracking/aarch64.irg.ll (diff)llvm.src/test/Analysis/ValueTracking/aarch64.irg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/irg.llllvm.src/test/CodeGen/AArch64/irg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/irg_sp_tagp.llllvm.src/test/CodeGen/AArch64/irg_sp_tagp.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/settag.llllvm.src/test/CodeGen/AArch64/settag.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stgp.llllvm.src/test/CodeGen/AArch64/stgp.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tagp.llllvm.src/test/CodeGen/AArch64/tagp.ll