Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document address offset fixup and make it optional #39

Open
hanno-becker opened this issue Mar 17, 2024 · 0 comments
Open

Document address offset fixup and make it optional #39

hanno-becker opened this issue Mar 17, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@hanno-becker
Copy link
Collaborator

hanno-becker commented Mar 17, 2024

Background: Address offset fixup is an important feature to facilitate software pipelining as it allows the reordering of ldr/str instructions with increment operating on the same address register. Normally, SLOTHY would not allow such reordering because it breaks data dependencies, but commutativity relations such as ldr _, [x0]; str _, [x0], #imm == str _, [x0], #imm; ldr _, [x0, #-imm] makes it possible, assuming a suitable 'address offset fixup' -- hence the name.

Issue: While important, address offset fixup is still somewhat experimental and poorly documented. What's more, SLOTHY's selfcheck is not aware of it and cannot catch bugs it may still have. To facilitate debugging, address offset fixup should be behind a configuration option to begin with.

Acceptance criteria:

  • SLOTHY supports a configuration option config.address_offset_fixup controlling the use of address offset fixup.
  • Document what determines whether instructions can participate in address offset fixup.
@hanno-becker hanno-becker added the enhancement New feature or request label Mar 17, 2024
@hanno-becker hanno-becker changed the title Make address offset fixup optional Document address offset fixup and make it optional Mar 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant