Split codegen into multiple steps
Open
codegen
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Right now codegen perform several steps monolithically:
1. schedules the IR
2. lowers the function or proc IR into a block
3. generates (System)Verilog from the block
This inhibits introspection of the intermediate artifacts and is less flexible than performing each stage with separate invocations.
This process could be done with three separate tools, maybe: `schedule_main`, `block_gen_main`, and `codegen_main` (as an asside we might want to consider stripping the _main suffix from our tools).
A driver (likely written in Python) could be used to bundle the running of the various tools together into a single invocation.
Contributor guide
Assessment
This issue has not been assessed yet.