Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

@seldridge seldridge merged commit 906a32e into main Dec 1, 2024
4 checks passed
@seldridge seldridge deleted the dev/seldridge/merge-connections-layers branch December 1, 2024 04:13
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