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

Type system redesign #86

Closed
9 of 11 tasks
lucas-rami opened this issue Jun 19, 2024 · 0 comments
Closed
9 of 11 tasks

Type system redesign #86

lucas-rami opened this issue Jun 19, 2024 · 0 comments
Assignees
Labels
critical Touches on core Dynamatic functionnality feature About a new feature in Dynamatic

Comments

@lucas-rami
Copy link
Member

lucas-rami commented Jun 19, 2024

Tracking issue for the type system redesign, described in this specification.

  • Define new types: handshake::ChannelType and handshake::ControlType (bebfb02).
  • Define new operations to manipulate these types: handshake::UnbundleOp (9fef8a5), handshake::BundleOp (9fef8a5), and handshake::ReshapeOp (6db1062).
  • Redefine arith operations in Handshake to make them accept our custom types (9dbd9db adds a usable subset of the arith operations, implementation of currently missing operations is moved to a different issue: [Handshake] Add Handshake versions of missing arith/math operations #102).
  • Refactor significantly the CfToHandshake conversion pass.
    • First, a largely mechanical makeover (without using the new types) to avoid a MLIR dialect registration issue that arises non-deterministically when running it (582684a).
    • Then, add type conversion logic to make it convert MLIR's standard types into our custom types (3aadbaf).
  • Adapt all of our existing passes to the new type system (3aadbaf).
  • Refactor the Handshake-to-HW lowering flow.
    • Add Handshake post-processing pass(es) that manipulate our types to make the conversion to HW and then RTL export easier (2082b20).
    • Remove type conversion infrastructure from the HandshakeToHW conversion pass (now handled by the CfToHandshake conversion pass) (3aadbaf).
    • Add HW post-processing pass(es) to unbundle all channels into their individual signals (this will make the RTL export logic simpler) (moved to [Backend] Unbundle dataflow-types into individual signals before RTL export #139).
  • Backend changes.
@lucas-rami lucas-rami added critical Touches on core Dynamatic functionnality feature About a new feature in Dynamatic labels Jun 19, 2024
@lucas-rami lucas-rami self-assigned this Jun 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
critical Touches on core Dynamatic functionnality feature About a new feature in Dynamatic
Projects
None yet
Development

No branches or pull requests

1 participant