[PATCH] D92834: [IR,AArch64] Add a new "ptrauth(...)" Constant to represent signed pointers

Tim Northover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 8 04:30:43 PST 2020


t.p.northover created this revision.
t.p.northover added a reviewer: ab.
Herald added subscribers: dexonsmith, jdoerfert, danielkiss, steven_wu, hiraditya, kristof.beyls, mcrosier.
Herald added a reviewer: deadalnix.
t.p.northover requested review of this revision.
Herald added a project: LLVM.

This is a largeish change so I'm posting it together with an RFC on llvm-dev, where we should probably talk about the design related aspects. I'll put a link here when I post it but one had to come first.

This adds IR support (essentially bitcode roundtripping) for a new kind of Constant to represent an ARMv8.3 signed pointer. Its main use is to represent the kinds of signed pointers that can be represented in the MachO binary format (used for vtables etc), so it folds in functionality from `@llvm.ptrauth.blend` and `@llvm.ptrauth.sign` and that has guided the fields present.


https://reviews.llvm.org/D92834

Files:
  llvm/docs/LangRef.rst
  llvm/include/llvm-c/Core.h
  llvm/include/llvm/Bitcode/LLVMBitCodes.h
  llvm/include/llvm/IR/AutoUpgrade.h
  llvm/include/llvm/IR/Constants.h
  llvm/include/llvm/IR/Value.def
  llvm/lib/AsmParser/LLLexer.cpp
  llvm/lib/AsmParser/LLParser.cpp
  llvm/lib/AsmParser/LLToken.h
  llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  llvm/lib/IR/AsmWriter.cpp
  llvm/lib/IR/AutoUpgrade.cpp
  llvm/lib/IR/ConstantFold.cpp
  llvm/lib/IR/Constants.cpp
  llvm/lib/IR/ConstantsContext.h
  llvm/lib/IR/LLVMContextImpl.h
  llvm/lib/IR/Verifier.cpp
  llvm/test/Assembler/invalid-ptrauth-const1.ll
  llvm/test/Assembler/invalid-ptrauth-const2.ll
  llvm/test/Assembler/invalid-ptrauth-const3.ll
  llvm/test/Assembler/invalid-ptrauth-const4.ll
  llvm/test/Assembler/invalid-ptrauth-const5.ll
  llvm/test/Assembler/invalid-ptrauth-const6.ll
  llvm/test/Assembler/ptrauth-const.ll
  llvm/test/Bitcode/compatibility.ll
  llvm/test/Bitcode/upgrade-ptrauth-global.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92834.310136.patch
Type: text/x-patch
Size: 31947 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201208/741345d7/attachment.bin>


More information about the llvm-commits mailing list