circt icon indicating copy to clipboard operation
circt copied to clipboard

[FIRRTL] Inliner: Support for ops with regions.

Open dtzSiFive opened this issue 6 months ago • 1 comments

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.

dtzSiFive avatar Jul 29 '24 16:07 dtzSiFive