Use Hoopl with MIPS
- Dominant language
- Haskell
- Stars
- 5
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
MIPS is currently outputted as a list of instructions which is pretty much impossible to optimize. A future idea is to take the outputted list, rebuild it into a new Hoopl Graph. Rebuilding is necessary so that all functions share the same graph; TemplateHaskell magic can be used to maintain a mirror of the MipsInstruction type with Hoopl type parameters as well as (partial) homomorphisms between them.
Then Hoopl can be used to optimize the graph form, and then to output a list of MipsInstructions again.
There's a secondary benefit that the second output step will re-order the functions to minimize backwards jumps. QtSpim doesn't care about this in terms of performance, but a future x86 version of cspim certainly would care.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.