[all-commits] [llvm/llvm-project] ad4a58: [llvm] Consistently respect `naked` fn attribute i...

Alex Rønne Petersen via All-commits all-commits at lists.llvm.org
Thu Oct 17 22:36:03 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ad4a582fd938c933e784f0052bd773676b37b690
      https://github.com/llvm/llvm-project/commit/ad4a582fd938c933e784f0052bd773676b37b690
  Author: Alex Rønne Petersen <alex at alexrp.com>
  Date:   2024-10-18 (Fri, 18 Oct 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetFrameLowering.h
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AMDGPU/R600FrameLowering.h
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIFrameLowering.h
    M llvm/lib/Target/ARC/ARCFrameLowering.cpp
    M llvm/lib/Target/ARC/ARCFrameLowering.h
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.h
    M llvm/lib/Target/AVR/AVRFrameLowering.cpp
    M llvm/lib/Target/AVR/AVRFrameLowering.h
    M llvm/lib/Target/BPF/BPFFrameLowering.cpp
    M llvm/lib/Target/BPF/BPFFrameLowering.h
    M llvm/lib/Target/CSKY/CSKYFrameLowering.cpp
    M llvm/lib/Target/CSKY/CSKYFrameLowering.h
    M llvm/lib/Target/DirectX/DirectXFrameLowering.h
    M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonFrameLowering.h
    M llvm/lib/Target/Lanai/LanaiFrameLowering.h
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
    M llvm/lib/Target/M68k/M68kFrameLowering.cpp
    M llvm/lib/Target/M68k/M68kFrameLowering.h
    M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
    M llvm/lib/Target/MSP430/MSP430FrameLowering.h
    M llvm/lib/Target/Mips/MipsFrameLowering.cpp
    M llvm/lib/Target/Mips/MipsFrameLowering.h
    M llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXFrameLowering.h
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.h
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVFrameLowering.h
    M llvm/lib/Target/SPIRV/SPIRVFrameLowering.h
    M llvm/lib/Target/Sparc/SparcFrameLowering.cpp
    M llvm/lib/Target/Sparc/SparcFrameLowering.h
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.h
    M llvm/lib/Target/VE/VEFrameLowering.cpp
    M llvm/lib/Target/VE/VEFrameLowering.h
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.h
    M llvm/lib/Target/XCore/XCoreFrameLowering.cpp
    M llvm/lib/Target/XCore/XCoreFrameLowering.h
    M llvm/lib/Target/Xtensa/XtensaFrameLowering.cpp
    M llvm/lib/Target/Xtensa/XtensaFrameLowering.h
    A llvm/test/CodeGen/AArch64/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/AMDGPU/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/ARM/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/AVR/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/BPF/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/CSKY/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/Hexagon/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/Lanai/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/LoongArch/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/M68k/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/MSP430/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/Mips/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/NVPTX/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/PowerPC/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/RISCV/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/SPARC/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/SystemZ/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/VE/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/WebAssembly/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/X86/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/XCore/naked-fn-with-frame-pointer.ll
    A llvm/test/CodeGen/Xtensa/naked-fn-with-frame-pointer.ll
    M llvm/unittests/CodeGen/MFCommon.inc

  Log Message:
  -----------
  [llvm] Consistently respect `naked` fn attribute in `TargetFrameLowering::hasFP()` (#106014)

Some targets (e.g. PPC and Hexagon) already did this. I think it's best
to do this consistently so that frontend authors don't run into
inconsistent results when they emit `naked` functions. For example, in
Zig, we had to change our emit code to also set `frame-pointer=none` to
get reliable results across targets.

Note: I don't have commit access.



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