[FIRRTL] Support layers in MergeConnections #7912
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 normalOperation::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 producingsv.ifdef
operations which we would like to hide from the rest of the FIRRTL pipeline) can be turned on.