Skip to content

Conversation

@steveklabnik
Copy link
Collaborator

Replace heap-allocated String with u32 symbol index in CallRel (x86_64) and Bl (aarch64) instructions. This reduces enum size from 24 bytes to 4 bytes per call instruction and eliminates allocations during MIR construction.

Changes:

  • Add symbol table (Vec) to X86Mir and Aarch64Mir
  • Add intern_symbol/get_symbol methods for symbol management
  • Update cfg_lower.rs to intern symbols when emitting calls
  • Update emit.rs to resolve symbols from table at emit time
  • Update regalloc.rs to transfer symbol table during rewriting

Closes rue-frgb

🤖 Generated with Claude Code

@steveklabnik steveklabnik force-pushed the steveklabnik/push-uuwluvmqwmwz branch from f9d2299 to e1b90c2 Compare December 28, 2025 05:23
Replace heap-allocated String with u32 symbol index in CallRel (x86_64)
and Bl (aarch64) instructions. This reduces enum size from 24 bytes to
4 bytes per call instruction and eliminates allocations during MIR
construction.

Changes:
- Add symbol table (Vec<String>) to X86Mir and Aarch64Mir
- Add intern_symbol/get_symbol methods for symbol management
- Update cfg_lower.rs to intern symbols when emitting calls
- Update emit.rs to resolve symbols from table at emit time
- Update regalloc.rs to transfer symbol table during rewriting

Closes rue-frgb

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@steveklabnik steveklabnik force-pushed the steveklabnik/push-uuwluvmqwmwz branch from e1b90c2 to 46d517e Compare December 28, 2025 05:51
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