[all-commits] [llvm/llvm-project] ca076f: [LLVM] [MC] Update frame layout & CFI generation t...

Wesley Wiser via All-commits all-commits at lists.llvm.org
Tue Jul 23 09:43:51 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ca076f7a63f6a80e2e38315ec462be354b196b8d
      https://github.com/llvm/llvm-project/commit/ca076f7a63f6a80e2e38315ec462be354b196b8d
  Author: Wesley Wiser <wwiser at gmail.com>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineFrameInfo.h
    M llvm/include/llvm/CodeGen/TargetFrameLowering.h
    M llvm/include/llvm/MC/MCAsmBackend.h
    M llvm/include/llvm/MC/MCDwarf.h
    M llvm/lib/CodeGen/CFIInstrInserter.cpp
    M llvm/lib/CodeGen/MachineFrameInfo.cpp
    M llvm/lib/CodeGen/PrologEpilogInserter.cpp
    M llvm/lib/MC/MCDwarf.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
    M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
    M llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/test/CodeGen/PowerPC/huge-frame-size.ll
    M llvm/test/CodeGen/RISCV/pr88365.ll
    M llvm/test/CodeGen/X86/huge-stack.ll

  Log Message:
  -----------
  [LLVM] [MC] Update frame layout & CFI generation to handle frames larger than 2gb (#99263)

Rebase of #84114. I've only included the core changes to frame layout
calculation & CFI generation which sidesteps the regressions found after
merging #84114. Since these changes are a necessary precursor to the
overall fix and are themselves slightly beneficial as CFI is now
generated correctly, I think it is reasonable to merge this first step.

---

For very large stack frames, the offset from the stack pointer to a
local can be more than 2^31 which overflows various `int` offsets in the
frame lowering code.

This patch updates the frame lowering code to calculate the offsets as
64-bit values and fixes CFI to use the corrected sizes.

After this patch, additional work is needed to fix offset truncations in
each target's codegen.



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