aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
diff options
context:
space:
mode:
authorchick2020-08-14 19:47:53 -0700
committerJack Koenig2020-08-14 19:47:53 -0700
commit6fc742bfaf5ee508a34189400a1a7dbffe3f1cac (patch)
tree2ed103ee80b0fba613c88a66af854ae9952610ce /src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
parentb516293f703c4de86397862fee1897aded2ae140 (diff)
All of src/ formatted with scalafmt
Diffstat (limited to 'src/main/scala/firrtl/analyses/InstanceKeyGraph.scala')
-rw-r--r--src/main/scala/firrtl/analyses/InstanceKeyGraph.scala36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala b/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
index 761315dc..5354888d 100644
--- a/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
+++ b/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
@@ -14,10 +14,10 @@ import scala.collection.mutable
* pairs of InstanceName and Module name as vertex keys instead of using WDefInstance
* which will hash the instance type causing some performance issues.
*/
-class InstanceKeyGraph private(c: ir.Circuit) {
+class InstanceKeyGraph private (c: ir.Circuit) {
import InstanceKeyGraph._
- private val nameToModule: Map[String, ir.DefModule] = c.modules.map({m => (m.name,m) }).toMap
+ private val nameToModule: Map[String, ir.DefModule] = c.modules.map({ m => (m.name, m) }).toMap
private val childInstances: Seq[(String, Seq[InstanceKey])] = c.modules.map { m =>
m.name -> InstanceKeyGraph.collectInstances(m)
}
@@ -37,8 +37,8 @@ class InstanceKeyGraph private(c: ir.Circuit) {
circuitTopInstance.OfModule +: internalGraph.reachableFrom(circuitTopInstance).toSeq.map(_.OfModule)
private lazy val cachedUnreachableModules: Seq[OfModule] = {
- val all = mutable.LinkedHashSet(childInstances.map(c => OfModule(c._1)):_*)
- val reachable = mutable.LinkedHashSet(cachedReachableModules:_*)
+ val all = mutable.LinkedHashSet(childInstances.map(c => OfModule(c._1)): _*)
+ val reachable = mutable.LinkedHashSet(cachedReachableModules: _*)
all.diff(reachable).toSeq
}
@@ -68,11 +68,11 @@ class InstanceKeyGraph private(c: ir.Circuit) {
private lazy val cachedStaticInstanceCount = {
val foo = mutable.LinkedHashMap.empty[OfModule, Int]
childInstances.foreach {
- case (main, _) if main == c.main => foo += main.OfModule -> 1
+ case (main, _) if main == c.main => foo += main.OfModule -> 1
case (other, _) => foo += other.OfModule -> 0
}
- childInstances.flatMap(_._2).map(_.OfModule).foreach {
- mod => foo += mod -> (foo(mod) + 1)
+ childInstances.flatMap(_._2).map(_.OfModule).foreach { mod =>
+ foo += mod -> (foo(mod) + 1)
}
foo.toMap
}
@@ -88,17 +88,18 @@ class InstanceKeyGraph private(c: ir.Circuit) {
*/
def findInstancesInHierarchy(module: String): Seq[Seq[InstanceKey]] = {
val instances = vertices.filter(_.module == module).toSeq
- instances.flatMap{ i => cachedFullHierarchy.getOrElse(i, Nil) }
+ instances.flatMap { i => cachedFullHierarchy.getOrElse(i, Nil) }
}
/** Given a circuit, returns a map from module name to a map
* in turn mapping instances names to corresponding module names
*/
def getChildInstanceMap: mutable.LinkedHashMap[OfModule, mutable.LinkedHashMap[Instance, OfModule]] =
- mutable.LinkedHashMap(childInstances.map { case (k, v) =>
- val moduleMap: mutable.LinkedHashMap[Instance, OfModule] = mutable.LinkedHashMap(v.map(_.toTokens):_*)
- TargetToken.OfModule(k) -> moduleMap
- }:_*)
+ mutable.LinkedHashMap(childInstances.map {
+ case (k, v) =>
+ val moduleMap: mutable.LinkedHashMap[Instance, OfModule] = mutable.LinkedHashMap(v.map(_.toTokens): _*)
+ TargetToken.OfModule(k) -> moduleMap
+ }: _*)
/** All modules in the circuit reachable from the top module */
def reachableModules: Seq[OfModule] = cachedReachableModules
@@ -110,7 +111,6 @@ class InstanceKeyGraph private(c: ir.Circuit) {
def fullHierarchy: mutable.LinkedHashMap[InstanceKey, Seq[Seq[InstanceKey]]] = cachedFullHierarchy
}
-
object InstanceKeyGraph {
def apply(c: ir.Circuit): InstanceKeyGraph = new InstanceKeyGraph(c)
@@ -126,12 +126,12 @@ object InstanceKeyGraph {
/** Finds all instance definitions in a firrtl Module. */
def collectInstances(m: ir.DefModule): Seq[InstanceKey] = m match {
- case _ : ir.ExtModule => Seq()
+ case _: ir.ExtModule => Seq()
case ir.Module(_, _, _, body) => {
val instances = mutable.ArrayBuffer[InstanceKey]()
def onStmt(s: ir.Statement): Unit = s match {
case firrtl.WDefInstance(_, name, module, _) => instances += InstanceKey(name, module)
- case ir.DefInstance(_, name, module, _) => instances += InstanceKey(name, module)
+ case ir.DefInstance(_, name, module, _) => instances += InstanceKey(name, module)
case _: firrtl.WDefInstanceConnector =>
firrtl.Utils.throwInternalError("Expecting WDefInstance, found a WDefInstanceConnector!")
case other => other.foreachStmt(onStmt)
@@ -143,8 +143,10 @@ object InstanceKeyGraph {
private def topKey(module: String): InstanceKey = InstanceKey(module, module)
- private def buildGraph(childInstances: Seq[(String, Seq[InstanceKey])], roots: Iterable[String]):
- DiGraph[InstanceKey] = {
+ private def buildGraph(
+ childInstances: Seq[(String, Seq[InstanceKey])],
+ roots: Iterable[String]
+ ): DiGraph[InstanceKey] = {
val instanceGraph = new MutableDiGraph[InstanceKey]
val childInstanceMap = childInstances.toMap