[SV] Cleanup HWExportModuleHierarchyPass #5485
Merged
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.
Cleanup the
HWExportModuleHierarchyPass
pass in the following ways:Do not emit JSON directly, but rely use
sv.verbatim
operations with substitutions.Move
HWExportModuleHierarchyPass
beforeExportVerilog
(again). Given that (1) is happening, this must happen. Both (1) and (2) effectively undo the work in [HWExportModuleHierarchy] Directly emit JSON to a file instead of an sv.verbatim op. #1931.Use a
hw::ModuleNamespace
to ensure unique symbols are created for substitutions. This motivated some refactoring of theHWExportModuleHierarchyPass
from astruct
to aclass
since it now has private members. (This aligns with LLVM coding guidelines.)Update existing tests to expect the new
sv.verbatim
JSON.Add a new
firtool
end-to-end test baed on [FIRRTL][SV] Module Hierarchy Files Not Using VerilogName #5478.