[all-commits] [llvm/llvm-project] e60dc9: [Hexagon] Disable restore stubs when ShadowCallSta...

Brian Cain via All-commits all-commits at lists.llvm.org
Tue Jul 7 18:57:26 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e60dc90e3134975afb1a951f792b71d4b648877f
      https://github.com/llvm/llvm-project/commit/e60dc90e3134975afb1a951f792b71d4b648877f
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2026-07-08 (Wed, 08 Jul 2026)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
    M llvm/test/CodeGen/Hexagon/shadow-call-stack.ll

  Log Message:
  -----------
  [Hexagon] Disable restore stubs when ShadowCallStack is active (#206302)

The returning restore stubs (e.g.
__restore_r16_through_r17_and_deallocframe) perform deallocframe+jumpr
r31 internally, returning via the on-stack return address. This is
incompatible with ShadowCallStack, which must restore r31 from the
shadow stack before returning.

Fix by having useRestoreFunction() return false when the ShadowCallStack
attribute is present, forcing inline callee-saved restores so the SCS
epilogue is properly emitted.



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