[all-commits] [llvm/llvm-project] 5e612b: [AArch64] Make stack tagging compatible with SLH

Kristof Beyls via All-commits all-commits at lists.llvm.org
Thu Apr 20 07:54:31 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5e612bc291347d364f1d47c37f0d34eb6474b9b5
      https://github.com/llvm/llvm-project/commit/5e612bc291347d364f1d47c37f0d34eb6474b9b5
  Author: Kristof Beyls <kristof.beyls at arm.com>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
    M llvm/test/CodeGen/AArch64/settag-merge-order.ll
    M llvm/test/CodeGen/AArch64/settag-merge.ll
    M llvm/test/CodeGen/AArch64/settag.ll

  Log Message:
  -----------
  [AArch64] Make stack tagging compatible with SLH

See https://github.com/llvm/llvm-project/issues/61830

Speculative Load Hardening (SLH) requires that conditional branches are
implemented using B.cc branches, not using {TC}B{N}Z branches.

Stack tagging was expanding one of the pseudo instructions it uses to
cbnz. This commit changes that to use b.ne instead.

Note that the added regression test was added to settag.ll rather than
speculation-hardening.ll. The speculation-hardening.ll tests also check
that all tests in the file work with global-isel. It seems that stack
tagging does not work yet with global-isel. Therefore, testing the
combination of stack tagging and SLH hard to be added to a test file
that doesn't test global-isel, i.e. settag.ll

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




More information about the All-commits mailing list