Skip to content

Commit

Permalink
[FIRRTL] Inliner: Support for ops with regions. (#7398)
Browse files Browse the repository at this point in the history
inlineInstances/flattenInstances:
* Walk entire body, not only top-level operations.
  Fixes missing instances and allows inlining them
  when conservatively legal.
* Reject inlining instances under when/match.

inlineInto/flattenInto:
  Walk entire body using new `inliningWalk` method
  that drives the per-operations handling but also
  handles cloning "structure" operations that have
  regions (when/match/layer) and managing what
  should be cloned where.

  This allows inlining modules that contain these
  operations.

Inliner now may produce errors, thread throughout.

This allows the inliner to run earlier in the pipeline,
particularly before LowerLayers.
  • Loading branch information
dtzSiFive authored Sep 26, 2024
1 parent fee3dec commit 9322802
Show file tree
Hide file tree
Showing 3 changed files with 443 additions and 75 deletions.
Loading

0 comments on commit 9322802

Please sign in to comment.