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

[FIRRTL] Support layers in MergeConnections #7912

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

seldridge
Copy link
Member

Modify the MergeConnections pass to walk into regions and blocks. Because the algorithm used in this pass wants to insert operations after the operation that is currently being processed and then visit them, this cannot use a normal Operation::walk (since this will pre-increment and not visit these operations). Keep this existing algorithm, but use an iterator worklist to make this behave like a walk.

This is done as part of moving LowerLayers to the end of the FIRRTL pipeline so that inline layer support (which requires producing sv.ifdef operations which we would like to hide from the rest of the FIRRTL pipeline) can be turned on.

Modify the `MergeConnections` pass to walk into regions and blocks.
Because the algorithm used in this pass wants to insert operations _after_
the operation that is currently being processed _and then_ visit them,
this cannot use a normal `Operation::walk` (since this will pre-increment
and not visit these operations).  Keep this existing algorithm, but use an
iterator worklist to make this behave like a walk.

This is done as part of moving `LowerLayers` to the end of the FIRRTL
pipeline so that inline layer support (which requires producing `sv.ifdef`
operations which we would like to hide from the rest of the FIRRTL
pipeline) can be turned on.

Signed-off-by: Schuyler Eldridge <[email protected]>
Copy link
Member

@uenoku uenoku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants