-
Notifications
You must be signed in to change notification settings - Fork 276
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
[HW][FlattenIO] Flatten io arrays #6996
base: main
Are you sure you want to change the base?
Conversation
Good catch; there's actually no test for lowering ESI channels to HW inside
Personally, i think opting in to enabling the specific types to be flattened is preferred. |
Thank you for doing this! Please feel free to merge HWLegalizeModule change. |
Block argument locations seem to be updated by the conversion framework as of this commit.
68da07a
to
ea6569b
Compare
Lowering an Array of channels is actually something I was working on recently. In that case, it's not so much flattening as lowering to Arrays of data/valid/ready signals.
There is:
|
This is an attempt at following @uenoku's suggestions in #6557 (comment), by extending the
FlattenIO
pass flattenhw::ArrayType
in addition tohw::StructType
.@mortbopet how does this agree with your usage of
FlattenIO
withESI
? According to 062eab3:Is this specific usecase covered by a test?
The above changes seem to make the tests pass, but I imagine that I might be breaking something that I don't quite understand.
Would it be preferable to template the
FlattenIO
pass over an aggregate type (hw::StructType
orhw::ArrayType
in practice)? Or to provide parameters to the pass describing what aggregate types to flatten? Any advice would be appreciated.