Skip to content

Commit

Permalink
[FIRRTL] Inliner: Support for ops with regions.
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 committed Jul 29, 2024
1 parent 759ef12 commit f6e254b
Show file tree
Hide file tree
Showing 3 changed files with 391 additions and 71 deletions.
Loading

0 comments on commit f6e254b

Please sign in to comment.