google / google/xls

Split codegen into multiple steps

Open
#813 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.