aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorBenjamin Maxwell <benjamin.maxwell@arm.com>2025-06-02 10:52:10 +0100
committerGitHub <noreply@github.com>2025-06-02 10:52:10 +0100
commitb5cf03033251a642b184b2e0ea6bdac171c17702 (patch)
tree55bc8c880a7aaa824aec61d963a26e9fecec511b /clang/lib/CodeGen/CodeGenModule.cpp
parent3a45d55b39b32fe267065c57346eaa7855691ff5 (diff)
downloadllvm-b5cf03033251a642b184b2e0ea6bdac171c17702.zip
llvm-b5cf03033251a642b184b2e0ea6bdac171c17702.tar.gz
llvm-b5cf03033251a642b184b2e0ea6bdac171c17702.tar.bz2
[AArch64][SME] Fix accessing the emergency spill slot with hazard padding (#142190)
This patch fixes an issue where when hazard padding was enabled locals, including the emergency spill slot, could not be directly addressed. Generally, this is fine, we can materialize the constant offset in a scratch register, but if there's no register free we need to spill, and if we can't even reach the emergency spill slot then we fail to compile. This patch fixes this by ensuring that if a function has variable-sized objects and is likely to have hazard padding we enable the base pointer. Then if we know a function has hazard padding, place the emergency spill slot next to the BP/SP, to ensure it can be directly accessed without stepping over any hazard padding.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions