aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJack Koenig2020-06-02 15:56:22 -0700
committerGitHub2020-06-02 22:56:22 +0000
commitb7b9af739b7f1b96c030619f8910cfd6f571d6d6 (patch)
tree8489053054ca6711e215a669ea2f08b46f5772f0 /src
parent636f804ace1fff7e6c0454ef6e79e0fd3add98b7 (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.scala4
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]] = {