[all-commits] [llvm/llvm-project] 678944: [AArch64] Fix a corner case with large stack alloc...
ssijaric-nv via All-commits
all-commits at lists.llvm.org
Sat Jan 18 22:09:47 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6789442eb2e1ed92b2157e96e9e9eafed5c53f17
https://github.com/llvm/llvm-project/commit/6789442eb2e1ed92b2157e96e9e9eafed5c53f17
Author: ssijaric-nv <ssijaric at nvidia.com>
Date: 2025-01-18 (Sat, 18 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
A llvm/test/CodeGen/AArch64/aarch64-large-stack-spbump.mir
Log Message:
-----------
[AArch64] Fix a corner case with large stack allocation (#122038)
In the unlikely case where the stack size is greater than 4GB, we may run into
the situation where the local stack size and the callee saved registers stack
size get combined incorrectly when restoring the callee saved registers. This
happens because the stack size in shouldCombineCSRLocalStackBumpInEpilogue
is represented as an 'unsigned', but is passed in as an 'int64_t'. We end up with
something like
$fp, $lr = frame-destroy LDPXi $sp, 536870912
This change just makes 'shouldCombineCSRLocalStackBumpInEpilogue' match
'shouldCombineCSRLocalStackBump' where 'StackBumpBytes' is an 'uint64_t'
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