[all-commits] [llvm/llvm-project] e07b47: [LFI][AArch64] Add rewrites for memory accesses (#...

Zachary Yedidia via All-commits all-commits at lists.llvm.org
Wed Jun 10 12:58:26 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e07b47ee180559fafb6ce37dece10200c19f1941
      https://github.com/llvm/llvm-project/commit/e07b47ee180559fafb6ce37dece10200c19f1941
  Author: Zachary Yedidia <zyedidia at gmail.com>
  Date:   2026-06-10 (Wed, 10 Jun 2026)

  Changed paths:
    M llvm/docs/LFI.rst
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    A llvm/lib/Target/AArch64/AArch64LFI.td
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
    A llvm/test/MC/AArch64/LFI/exclusive.s
    A llvm/test/MC/AArch64/LFI/fp.s
    A llvm/test/MC/AArch64/LFI/jumps-only.s
    A llvm/test/MC/AArch64/LFI/literal.s
    A llvm/test/MC/AArch64/LFI/lse.s
    A llvm/test/MC/AArch64/LFI/mem-lr.s
    A llvm/test/MC/AArch64/LFI/mem.s
    A llvm/test/MC/AArch64/LFI/no-lfi-loads.s
    A llvm/test/MC/AArch64/LFI/no-lfi-stores.s
    A llvm/test/MC/AArch64/LFI/passthrough.s
    A llvm/test/MC/AArch64/LFI/prefetch.s
    A llvm/test/MC/AArch64/LFI/rcpc.s
    A llvm/test/MC/AArch64/LFI/simd.s
    A llvm/test/MC/AArch64/LFI/stack.s
    M llvm/test/MC/AArch64/LFI/sys.s

  Log Message:
  -----------
  [LFI][AArch64] Add rewrites for memory accesses (#195167)

This patch adds LFI rewrites for loads and stores, and guards for stack
pointer modifications.

This also introduces the `+no-lfi-stores` and `+no-lfi-loads` features
to control the granularity of memory sandboxing.

With these changes the rewriter now supports making fully
software-sandboxed programs. There are some minor changes
needed in libunwind to avoid emitting SVE/MTE instructions that
cause verification failure, which will be addressed in a future patch.

Future work includes the guard elimination optimization, which will
improve performance, Clang flags to control the LFI subtarget
features from the frontend, and that can also set a macro that
communicates the LFI feature level.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list