[all-commits] [llvm/llvm-project] 282afd: Reland "[llvm][AArch64] Insert "bti j" after call ...

David Spickett via All-commits all-commits at lists.llvm.org
Tue Apr 12 01:35:28 PDT 2022


  Branch: refs/heads/setjmp-bti-llvm-14
  Home:   https://github.com/llvm/llvm-project
  Commit: 282afda01b3e02b5fa7a3934e1188dbcde9d497c
      https://github.com/llvm/llvm-project/commit/282afda01b3e02b5fa7a3934e1188dbcde9d497c
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2022-04-12 (Tue, 12 Apr 2022)

  Changed paths:
    M clang/docs/ClangCommandLineReference.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
    A llvm/test/CodeGen/AArch64/setjmp-bti-no-enforcement.ll
    A llvm/test/CodeGen/AArch64/setjmp-bti-outliner.ll
    A llvm/test/CodeGen/AArch64/setjmp-bti.ll

  Log Message:
  -----------
  Reland "[llvm][AArch64] Insert "bti j" after call to setjmp"

Cherry-picked from c3b98194df5572bc9b33024b48457538a7213b4c
which was originally reviewed as https://reviews.llvm.org/D121707.

This reverts commit edb7ba714acba1d18a20d9f4986d2e38aee1d109.

This changes BLR_BTI to take variable_ops meaning that we can accept
a register or a label. The pattern still expects one argument so we'll
never get more than one. Then later we can check the type of the operand
to choose BL or BLR to emit.

(this is what BLR_RVMARKER does but I missed this detail of it first time around)

Also require NoSLSBLRMitigation which I missed in the first version.




More information about the All-commits mailing list