Skip to content

Prefer caller-save registers and emit callee-save clobber comments#437

Open
dop-amin wants to merge 1 commit into
mainfrom
prefer-regs
Open

Prefer caller-save registers and emit callee-save clobber comments#437
dop-amin wants to merge 1 commit into
mainfrom
prefer-regs

Conversation

@dop-amin
Copy link
Copy Markdown
Collaborator

  • Add callee_saved_registers() to Arm v8.1-M/Helium and RISC-V ISA models
  • Add config.constraints.prefer_caller_save_registers: biases allocation toward input registers and away from callee-saved ones via CP-SAT hints and a secondary minimisation objective (never sacrifices stall counts)
  • Add config.emit_clobbered_callee_saves_comment (default True): prepends a comment listing clobbered callee-saved registers to the output
  • Accumulate clobber set across preamble, kernel, and postamble in Heuristics.periodic; store on Result
  • Add four AArch64 naive tests covering the new features including a forced callee-save allocation case and a SW-pipelining path

* Add `callee_saved_registers()` to Arm v8.1-M/Helium and RISC-V ISA models
* Add `config.constraints.prefer_caller_save_registers`: biases allocation toward input registers and away from callee-saved ones via CP-SAT hints and a secondary minimisation objective (never sacrifices stall counts)
* Add `config.emit_clobbered_callee_saves_comment` (default True): prepends a comment listing clobbered callee-saved registers to the output
* Accumulate clobber set across preamble, kernel, and postamble in `Heuristics.periodic`; store on `Result`
* Add four AArch64 naive tests covering the new features including a forced callee-save allocation case and a SW-pipelining path
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.

1 participant