Turns a module into a name-agnostic module
Turns a module into a name-agnostic module
module to change
name-agnostic module
Change's a module's internal signal names, types, infos, and modules.
Change's a module's internal signal names, types, infos, and modules.
Function to rename a signal. Called on declaration and references.
Function to retype a signal. Called on declaration, references, and subfields
Function to re-info a statement
Function to rename an instance's module
Module to change internals
Changed Module
Dedup a module's instances based on dedup map
Dedup a module's instances based on dedup map
Will fixes up module if deduped instance's ports are differently named
Module name who's instances will be deduped
Map of module name to its original module
Map of module name to the module deduping it. Not mutated in this function.
Will be modified to keep track of renames in this function
fixed up module deduped instances
Deduplicate
Deduplicate
Circuit
list of modules to not dedup
rename map to populate when deduping
Map of original Module name -> Deduped Module
Utility functions for DedupModules