[all-commits] [llvm/llvm-project] c5f348: [LLVM] [MC] Update frame layout & CFI generation t...
Wesley Wiser via All-commits
all-commits at lists.llvm.org
Fri Jul 26 00:21:34 PDT 2024
Branch: refs/heads/release/19.x
Home: https://github.com/llvm/llvm-project
Commit: c5f34876cd00c01bf5ecd38a2bfc5377867e4b04
https://github.com/llvm/llvm-project/commit/c5f34876cd00c01bf5ecd38a2bfc5377867e4b04
Author: Wesley Wiser <wwiser at gmail.com>
Date: 2024-07-26 (Fri, 26 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.
(cherry picked from commit ca076f7a63f6a80e2e38315ec462be354b196b8d)
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