[all-commits] [llvm/llvm-project] f5fc52: [aarch64] Mix the frame pointer with the stack coo...

Pan Tao via All-commits all-commits at lists.llvm.org
Wed Jun 10 06:30:02 PDT 2026


  Branch: refs/heads/users/luporl/mychange
  Home:   https://github.com/llvm/llvm-project
  Commit: f5fc52130bb86229d82e64aa6df397db9f429fa8
      https://github.com/llvm/llvm-project/commit/f5fc52130bb86229d82e64aa6df397db9f429fa8
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-13 (Wed, 13 May 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/StackProtector.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll

  Log Message:
  -----------
  [aarch64] Mix the frame pointer with the stack cookie when protecting the stack

For MSVC-compatible targets, mix the stack cookie with the current stack
pointer to create a position-dependent guard value. This strengthens
protection against attacks where the attacker knows or can predict the
cookie value, as they would also need to know the exact stack location.

Implementation note: We use SUB (SP - Cookie) instead of XOR like X86
because:
1. SUB maintains the existing AArch64 instruction selection patterns
2. SUB provides equivalent security properties (bijective mixing)
3. The result is still unpredictable without knowing both inputs

The same SUB operation is performed in both prologue (to store the mixed
value) and epilogue (to recompute and verify the mixed value).
This strengthens the guard and matches MSVC.

Fixes #156573.


  Commit: 5526a83d3e32e05b5f79430dca94749193fd531b
      https://github.com/llvm/llvm-project/commit/5526a83d3e32e05b5f79430dca94749193fd531b
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-13 (Wed, 13 May 2026)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.h

  Log Message:
  -----------
  Fix code format error


  Commit: b7cf9dc05c9bf1de3d71e20e52207a7009911b17
      https://github.com/llvm/llvm-project/commit/b7cf9dc05c9bf1de3d71e20e52207a7009911b17
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-18 (Mon, 18 May 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll

  Log Message:
  -----------
  Fix confusing check items


  Commit: 55ba9e77c18b14b354743a549966f2723d332132
      https://github.com/llvm/llvm-project/commit/55ba9e77c18b14b354743a549966f2723d332132
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-22 (Fri, 22 May 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll

  Log Message:
  -----------
  Fix the issue of triggering STATUS_STACK_BUFFER_OVERRUN


  Commit: 1b7040f3f4adc99fe43dfcfb129ecd1142f2fe6b
      https://github.com/llvm/llvm-project/commit/1b7040f3f4adc99fe43dfcfb129ecd1142f2fe6b
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-22 (Fri, 22 May 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  Fix code format error


  Commit: df55cfadd227ece3192b9996a5bc4866c3a52c24
      https://github.com/llvm/llvm-project/commit/df55cfadd227ece3192b9996a5bc4866c3a52c24
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-25 (Mon, 25 May 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
    M llvm/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
    M llvm/test/CodeGen/AArch64/alloca.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/shrink-wrapping-vla.ll
    M llvm/test/CodeGen/AArch64/sme-agnostic-za.ll
    M llvm/test/CodeGen/AArch64/sme-framelower-use-bp.ll
    M llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll
    M llvm/test/CodeGen/AArch64/sme-za-lazy-save-buffer.ll
    M llvm/test/CodeGen/AArch64/split-sve-stack-frame-layout.ll
    M llvm/test/CodeGen/AArch64/stack-guard-sysreg.ll
    M llvm/test/CodeGen/AArch64/stack-hazard.ll
    M llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll
    M llvm/test/CodeGen/AArch64/sve-alloca.ll
    M llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
    M llvm/test/CodeGen/AArch64/win-alloca-no-stack-probe.ll
    M llvm/test/CodeGen/AArch64/win-alloca.ll
    M llvm/test/CodeGen/AArch64/win-sve.ll
    M llvm/test/CodeGen/AArch64/win64_vararg.ll

  Log Message:
  -----------
  Combine 'mov x8, sp' and 'sub x8, x8, x9'


  Commit: 31ccc3858ecd989fd190fe2553f9cfdc974d3668
      https://github.com/llvm/llvm-project/commit/31ccc3858ecd989fd190fe2553f9cfdc974d3668
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-25 (Mon, 25 May 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  Fix code format error


  Commit: 550ddea22d87b14e8b94237444531ffe70e2fe4a
      https://github.com/llvm/llvm-project/commit/550ddea22d87b14e8b94237444531ffe70e2fe4a
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-25 (Mon, 25 May 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/sme-framelower-use-bp.ll

  Log Message:
  -----------
  Remove redundant check


  Commit: 4f58edb0060302e62eb7cd81d8958d2204d8a6a5
      https://github.com/llvm/llvm-project/commit/4f58edb0060302e62eb7cd81d8958d2204d8a6a5
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-27 (Wed, 27 May 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
    M llvm/test/CodeGen/AArch64/alloca.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/shrink-wrapping-vla.ll
    M llvm/test/CodeGen/AArch64/sme-agnostic-za.ll
    M llvm/test/CodeGen/AArch64/sme-framelower-use-bp.ll
    M llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll
    M llvm/test/CodeGen/AArch64/sme-za-lazy-save-buffer.ll
    M llvm/test/CodeGen/AArch64/split-sve-stack-frame-layout.ll
    M llvm/test/CodeGen/AArch64/stack-guard-sysreg.ll
    M llvm/test/CodeGen/AArch64/stack-hazard.ll
    M llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
    M llvm/test/CodeGen/AArch64/sve-alloca.ll
    M llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll
    M llvm/test/CodeGen/AArch64/win-alloca-no-stack-probe.ll
    M llvm/test/CodeGen/AArch64/win-alloca.ll
    M llvm/test/CodeGen/AArch64/win-sve.ll
    M llvm/test/CodeGen/AArch64/win64_vararg.ll

  Log Message:
  -----------
  Remove redundant modifications


  Commit: 9a77889d4c7c85de3153a68d6c38b2c19ee8fb3a
      https://github.com/llvm/llvm-project/commit/9a77889d4c7c85de3153a68d6c38b2c19ee8fb3a
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-05-29 (Fri, 29 May 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll

  Log Message:
  -----------
  Change to using fp to mix cookie


  Commit: e22349e610c26a8c1565292f5444ee6d55bc82de
      https://github.com/llvm/llvm-project/commit/e22349e610c26a8c1565292f5444ee6d55bc82de
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-06-02 (Tue, 02 Jun 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/StackProtector.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
    M llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll

  Log Message:
  -----------
  Remove uxtx and redundant code


  Commit: 84ef93420bf1617dcc1e79baa23bf74bbdbf20f2
      https://github.com/llvm/llvm-project/commit/84ef93420bf1617dcc1e79baa23bf74bbdbf20f2
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2026-06-02 (Tue, 02 Jun 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll

  Log Message:
  -----------
  Use update_llc_test_checks.py to update mingw-refptr.ll


Compare: https://github.com/llvm/llvm-project/compare/f5fc52130bb8%5E...84ef93420bf1

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