[all-commits] [llvm/llvm-project] dff114: [ARM] Optimise non-ABI frame pointers (#110286)

Oliver Stannard via All-commits all-commits at lists.llvm.org
Mon Oct 28 02:01:28 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dff114b3565e4c981fcb40f24f72a0cb426294fe
      https://github.com/llvm/llvm-project/commit/dff114b3565e4c981fcb40f24f72a0cb426294fe
  Author: Oliver Stannard <oliver.stannard at arm.com>
  Date:   2024-10-28 (Mon, 28 Oct 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMSubtarget.cpp
    M llvm/lib/Target/ARM/ARMSubtarget.h
    M llvm/test/CodeGen/Thumb2/bti-pac-replace-2.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-basic.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-frame-chain.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-indirect-tail-call.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-outliner-3.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-outliner-4.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-overalign.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-stack-arg.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-varargs-1.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-varargs-2.ll
    M llvm/test/CodeGen/Thumb2/pacbti-m-vla.ll

  Log Message:
  -----------
  [ARM] Optimise non-ABI frame pointers (#110286)

With -fomit-frame-pointer, even if we set up a frame pointer for other
reasons (e.g. variable-sized or over-aligned stack allocations), we
don't need to create an ABI-compliant frame record. This means that we
can save all of the general-purpose registers in one push, instead of
splitting it to ensure that the frame pointer and link register are
adjacent on the stack, saving two instructions per function.



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