Better handling of non-flat register spaces
Open
code size
enhancement
low reward
medium effort
uncertain scope
- Dominant language
- Standard ML
- Stars
- 1.2k
- Forks
- 104
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 16
Description
x64, riscv, and arm7 have a set of 8 registers which can be used by shorter forms of instructions, and should be preferred for variables that are frequently accessed. To some extent the existing register renaming support can handle this, but it has undesirable assumptions (the link register is always used first, but the ISA link register is not a preferred GPR on either riscv or arm7) and the static partitioning of temporaries between phases that need them also makes this difficult. I don't have a good idea what would be changed to make this happen.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.