diff options
| author | Albert Chen | 2020-05-21 14:18:14 -0700 |
|---|---|---|
| committer | GitHub | 2020-05-21 21:18:14 +0000 |
| commit | 9d58cac8071a7bce797ab55e6a587d678ee4464a (patch) | |
| tree | 26a5a0be25da64570dfc1457cd9d39439b5295ef /src/main/scala/firrtl/transforms/Dedup.scala | |
| parent | 20fac5ce984f933fc6ca26e781ae7402d550d6b7 (diff) | |
RenameMap: remove implicit rename chaining (#1591)
* RenameMap: remove implicit rename chaining
* RenameMap: remove trailing comma
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Diffstat (limited to 'src/main/scala/firrtl/transforms/Dedup.scala')
| -rw-r--r-- | src/main/scala/firrtl/transforms/Dedup.scala | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/main/scala/firrtl/transforms/Dedup.scala b/src/main/scala/firrtl/transforms/Dedup.scala index c3149e55..3ef7a403 100644 --- a/src/main/scala/firrtl/transforms/Dedup.scala +++ b/src/main/scala/firrtl/transforms/Dedup.scala @@ -68,11 +68,11 @@ class DedupModules extends Transform with DependencyAPIMigration with PreservesA def run(c: Circuit, noDedups: Seq[String], annos: Seq[Annotation]): (Circuit, RenameMap) = { // RenameMap - val renameMap = RenameMap() - renameMap.setCircuit(c.main) + val componentRenameMap = RenameMap() + componentRenameMap.setCircuit(c.main) // Maps module name to corresponding dedup module - val dedupMap = DedupModules.deduplicate(c, noDedups.toSet, annos, renameMap) + val dedupMap = DedupModules.deduplicate(c, noDedups.toSet, annos, componentRenameMap) // Use old module list to preserve ordering // Lookup what a module deduped to, if its a duplicate, remove it @@ -86,13 +86,14 @@ class DedupModules extends Transform with DependencyAPIMigration with PreservesA logger.debug(s"[Dedup] $from -> ${to.name}") ModuleName(from, cname) -> List(ModuleName(to.name, cname)) } - renameMap.recordAll( + val moduleRenameMap = RenameMap() + moduleRenameMap.recordAll( map.map { case (k: ModuleName, v: List[ModuleName]) => Target.convertNamed2Target(k) -> v.map(Target.convertNamed2Target) } ) - (InferTypes.run(c.copy(modules = dedupedModules)), renameMap) + (InferTypes.run(c.copy(modules = dedupedModules)), componentRenameMap.andThen(moduleRenameMap)) } } @@ -172,7 +173,8 @@ object DedupModules { */ def agnostify(top: CircuitTarget, module: DefModule, - renameMap: RenameMap + renameMap: RenameMap, + agnosticModuleName: String ): DefModule = { @@ -181,11 +183,12 @@ object DedupModules { val nameMap = mutable.HashMap[String, String]() val mod = top.module(module.name) + val agnosticMod = top.module(agnosticModuleName) def rename(name: String): String = { nameMap.getOrElseUpdate(name, { val newName = namespace.newTemp - renameMap.record(mod.ref(name), mod.ref(newName)) + renameMap.record(mod.ref(name), agnosticMod.ref(newName)) newName }) } @@ -351,7 +354,7 @@ object DedupModules { } else { // Try to dedup // Build name-agnostic module - val agnosticModule = DedupModules.agnostify(top, originalModule, agnosticRename) + val agnosticModule = DedupModules.agnostify(top, originalModule, agnosticRename, "thisModule") agnosticRename.record(top.module(originalModule.name), top.module("thisModule")) val agnosticAnnos = module2Annotations.getOrElse( originalModule.name, mutable.HashSet.empty[Annotation] |
