Skip to content

Conversation

MacDue
Copy link
Member

@MacDue MacDue commented Oct 7, 2025

This patch refactors the SVE prologue and epilogue to use a common code path for both the "Default" and "Split" SVE layouts.

This also factors some code into common helpers, such as:

  • partitionSVECS() (which returns the MI ranges of the PPR/ZPR callee-saves)
  • getSVEStackFrameSizes() (which returns the sizes of the PPR/ZPR locals/callee-saves)

Since most split-SVE layout code is now shared with the default path, there should be much less code that is only tested when split-SVE is enabled.

This patch was prepared in a number of small steps (that should build alone). I've kept these as commits in the PR, as it may help with review.

@MacDue MacDue merged commit 74acfb2 into llvm:main Oct 9, 2025
9 checks passed
@MacDue MacDue deleted the tidy_sve branch October 9, 2025 08:01
svkeerthy pushed a commit that referenced this pull request Oct 9, 2025
…s (NFCI) (#162253)

This patch refactors the SVE prologue and epilogue to use a common code
path for both the "Default" and "Split" SVE layouts.

This also factors some code into common helpers, such as:
- `partitionSVECS()` (which returns the MI ranges of the PPR/ZPR
   callee-saves)
- `getSVEStackFrameSizes()` (which returns the sizes of the PPR/ZPR
   locals/callee-saves)

Since most split-SVE layout code is now shared with the default path,
there should be much less code that is only tested when split-SVE is
enabled.
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