diff options
| author | Jack Koenig | 2020-06-02 15:56:22 -0700 |
|---|---|---|
| committer | GitHub | 2020-06-02 22:56:22 +0000 |
| commit | b7b9af739b7f1b96c030619f8910cfd6f571d6d6 (patch) | |
| tree | 8489053054ca6711e215a669ea2f08b46f5772f0 /src | |
| parent | 636f804ace1fff7e6c0454ef6e79e0fd3add98b7 (diff) | |
Fix performance pathology in DedupModules (#1654)
Fix a performance bug in DedupModules introduced in #1539. Stop
recalculating the same expensive datastructures for each module,
potentially multiple times.
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/transforms/Dedup.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/transforms/Dedup.scala b/src/main/scala/firrtl/transforms/Dedup.scala index f91e2e41..7199d63a 100644 --- a/src/main/scala/firrtl/transforms/Dedup.scala +++ b/src/main/scala/firrtl/transforms/Dedup.scala @@ -165,7 +165,7 @@ class DedupModules extends Transform with DependencyAPIMigration with PreservesA }.toMap // get the ordered set of instances a module, includes new Deduped modules - val getChildrenInstances = (mod: String) => { + val getChildrenInstances = { val childrenMap = instanceGraph.getChildrenInstances val newModsMap: Map[String, mutable.LinkedHashSet[WDefInstance]] = dedupMap.map { case (name, m: Module) => @@ -175,7 +175,7 @@ class DedupModules extends Transform with DependencyAPIMigration with PreservesA case (name, m: DefModule) => m.name -> mutable.LinkedHashSet.empty[WDefInstance] }.toMap - childrenMap.get(mod).getOrElse(newModsMap(mod)) + (mod: String) => childrenMap.get(mod).getOrElse(newModsMap(mod)) } val instanceNameMap: Map[OfModule, Map[Instance, Instance]] = { |
