Skip to content

Conversation

@tstellar
Copy link
Owner

No description provided.

@tstellar tstellar added this to the LLVM 20.X Release milestone Feb 13, 2025
@tstellar tstellar merged commit 13173d8 into main Feb 13, 2025
3 checks passed
@github-actions
Copy link

/cherry-pick 13173d8

tstellar pushed a commit that referenced this pull request Nov 13, 2025
llvm#166561)

This patch enables `aarch64-split-sve-objects` to handle hazard padding
in functions that use the SVE CC even when there are no predicate
spills/locals.

This improves the codegen over the base hazard padding implementation,
as rather than placing the padding in the callee-save area, it is placed
at the start of the ZPR area.

E.g., Current lowering:

```
sub sp, sp, #1040
str x29, [sp, #1024] // 8-byte Folded Spill
addvl sp, sp, #-1
str z8, [sp] // 16-byte Folded Spill
sub sp, sp, #1040
```

New lowering:

```
str x29, [sp, #-16]! // 8-byte Folded Spill
sub sp, sp, #1024
addvl sp, sp, #-1
str z8, [sp] // 16-byte Folded Spill
sub sp, sp, #1040
```

This also re-enables paired stores for GPRs (as the offsets no longer
include the hazard padding).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants