Skip to content

Add register repacking#413

Merged
mkeeter merged 1 commit into
mainfrom
register-sorting
May 16, 2026
Merged

Add register repacking#413
mkeeter merged 1 commit into
mainfrom
register-sorting

Conversation

@mkeeter
Copy link
Copy Markdown
Owner

@mkeeter mkeeter commented May 16, 2026

This PR sorts bytecode registers by frequency of use. The goal is to optimize GPU evaluators, which use a select chain to dynamically pick a register from an array.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds register-frequency repacking for VM bytecode generation, aiming to place the most-used registers at lower indices for GPU evaluator efficiency.

Changes:

  • Exposes immutable access to VmData’s inner RegTape.
  • Adds register visitation and repacking helpers to RegOp/RegTape.
  • Applies register repacking during bytecode serialization.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
fidget-core/src/vm/data.rs Adds VmData::asm() accessor for the inner register tape.
fidget-core/src/compiler/reg_tape.rs Adds frequency-based register repacking and map generation.
fidget-core/src/compiler/op.rs Adds register output/visitor helpers for RegOp.
fidget-bytecode/src/lib.rs Applies repacking when emitting bytecode.
CHANGELOG.md Documents the new public APIs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread fidget-bytecode/src/lib.rs Outdated
Comment thread CHANGELOG.md
Comment thread fidget-bytecode/src/lib.rs
Comment thread fidget-core/src/compiler/op.rs
Comment thread fidget-bytecode/src/lib.rs
@mkeeter mkeeter force-pushed the register-sorting branch from d9a7a29 to 7c8a5aa Compare May 16, 2026 20:54
@mkeeter mkeeter merged commit 8fdb99a into main May 16, 2026
13 checks passed
@mkeeter mkeeter deleted the register-sorting branch May 16, 2026 22:42
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