aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDonggyu Kim2016-08-30 19:01:37 -0700
committerDonggyu Kim2016-09-13 16:58:44 -0700
commit9d6b523e83d3836ade02bb36dcf8b8fc1d2e7234 (patch)
tree2f97a253c84f6ed7c43b6772c3c67907d72c4815 /src
parent96340374f091d5258ca69ef7fc614910e1c2cbb7 (diff)
type aliases
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/passes/CheckChirrtl.scala21
-rw-r--r--src/main/scala/firrtl/passes/Checks.scala32
-rw-r--r--src/main/scala/firrtl/passes/InferWidths.scala15
-rw-r--r--src/main/scala/firrtl/passes/LowerTypes.scala2
-rw-r--r--src/main/scala/firrtl/passes/MemUtils.scala2
5 files changed, 28 insertions, 44 deletions
diff --git a/src/main/scala/firrtl/passes/CheckChirrtl.scala b/src/main/scala/firrtl/passes/CheckChirrtl.scala
index 2ab8749b..f21449a2 100644
--- a/src/main/scala/firrtl/passes/CheckChirrtl.scala
+++ b/src/main/scala/firrtl/passes/CheckChirrtl.scala
@@ -27,21 +27,14 @@ MODIFICATIONS.
package firrtl.passes
-import com.typesafe.scalalogging.LazyLogging
-
-// Datastructures
-import scala.collection.mutable.HashSet
-
import firrtl._
import firrtl.ir._
import firrtl.Utils._
import firrtl.Mappers._
-import firrtl.PrimOps._
-import firrtl.WrappedType._
-
-object CheckChirrtl extends Pass with LazyLogging {
+object CheckChirrtl extends Pass {
def name = "Chirrtl Check"
+ type NameSet = collection.mutable.HashSet[String]
class NotUniqueException(info: Info, mname: String, name: String) extends PassException(
s"${info}: [module ${mname}] Reference ${name} does not have a unique name.")
@@ -101,7 +94,7 @@ object CheckChirrtl extends Pass with LazyLogging {
e
}
- def checkChirrtlE(info: Info, mname: String, names: HashSet[String])(e: Expression): Expression = {
+ def checkChirrtlE(info: Info, mname: String, names: NameSet)(e: Expression): Expression = {
e match {
case _: DoPrim | _:Mux | _:ValidIf | _: UIntLiteral =>
case e: Reference if !names(e.name) =>
@@ -114,14 +107,14 @@ object CheckChirrtl extends Pass with LazyLogging {
map checkChirrtlE(info, mname, names))
}
- def checkName(info: Info, mname: String, names: HashSet[String])(name: String): String = {
+ def checkName(info: Info, mname: String, names: NameSet)(name: String): String = {
if (names(name))
errors append (new NotUniqueException(info, mname, name))
names += name
name
}
- def checkChirrtlS(minfo: Info, mname: String, names: HashSet[String])(s: Statement): Statement = {
+ def checkChirrtlS(minfo: Info, mname: String, names: NameSet)(s: Statement): Statement = {
val info = get_info(s) match {case NoInfo => minfo case x => x}
(s map checkName(info, mname, names)) match {
case s: DefMemory =>
@@ -138,7 +131,7 @@ object CheckChirrtl extends Pass with LazyLogging {
map checkChirrtlS(info, mname, names))
}
- def checkChirrtlP(mname: String, names: HashSet[String])(p: Port): Port = {
+ def checkChirrtlP(mname: String, names: NameSet)(p: Port): Port = {
names += p.name
(p.tpe map checkChirrtlT(p.info, mname)
map checkChirrtlW(p.info, mname))
@@ -146,7 +139,7 @@ object CheckChirrtl extends Pass with LazyLogging {
}
def checkChirrtlM(m: DefModule) {
- val names = HashSet[String]()
+ val names = new NameSet
(m map checkChirrtlP(m.name, names)
map checkChirrtlS(m.info, m.name, names))
}
diff --git a/src/main/scala/firrtl/passes/Checks.scala b/src/main/scala/firrtl/passes/Checks.scala
index 16b16ff7..c300f7c7 100644
--- a/src/main/scala/firrtl/passes/Checks.scala
+++ b/src/main/scala/firrtl/passes/Checks.scala
@@ -27,8 +27,6 @@ MODIFICATIONS.
package firrtl.passes
-import com.typesafe.scalalogging.LazyLogging
-
import firrtl._
import firrtl.ir._
import firrtl.PrimOps._
@@ -36,11 +34,9 @@ import firrtl.Utils._
import firrtl.Mappers._
import firrtl.WrappedType._
-// Datastructures
-import scala.collection.mutable.{HashMap, HashSet}
-
-object CheckHighForm extends Pass with LazyLogging {
+object CheckHighForm extends Pass {
def name = "High Form Check"
+ type NameSet = collection.mutable.HashSet[String]
// Custom Exceptions
class NotUniqueException(info: Info, mname: String, name: String) extends PassException(
@@ -160,7 +156,7 @@ object CheckHighForm extends Pass with LazyLogging {
e
}
- def checkHighFormE(info: Info, mname: String, names: HashSet[String])(e: Expression): Expression = {
+ def checkHighFormE(info: Info, mname: String, names: NameSet)(e: Expression): Expression = {
e match {
case e: WRef if !names(e.name) =>
errors append new UndeclaredReferenceException(info, mname, e.name)
@@ -176,14 +172,14 @@ object CheckHighForm extends Pass with LazyLogging {
map checkHighFormE(info, mname, names))
}
- def checkName(info: Info, mname: String, names: HashSet[String])(name: String): String = {
+ def checkName(info: Info, mname: String, names: NameSet)(name: String): String = {
if (names(name))
errors append new NotUniqueException(info, mname, name)
names += name
name
}
- def checkHighFormS(minfo: Info, mname: String, names: HashSet[String])(s: Statement): Statement = {
+ def checkHighFormS(minfo: Info, mname: String, names: NameSet)(s: Statement): Statement = {
val info = get_info(s) match {case NoInfo => minfo case x => x}
(s map checkName(info, mname, names)) match {
case s: DefMemory =>
@@ -208,7 +204,7 @@ object CheckHighForm extends Pass with LazyLogging {
map checkHighFormS(minfo, mname, names))
}
- def checkHighFormP(mname: String, names: HashSet[String])(p: Port): Port = {
+ def checkHighFormP(mname: String, names: NameSet)(p: Port): Port = {
names += p.name
(p.tpe map checkHighFormT(p.info, mname)
map checkHighFormW(p.info, mname))
@@ -216,7 +212,7 @@ object CheckHighForm extends Pass with LazyLogging {
}
def checkHighFormM(m: DefModule) {
- val names = HashSet[String]()
+ val names = new NameSet
(m map checkHighFormP(m.name, names)
map checkHighFormS(m.info, m.name, names))
}
@@ -231,7 +227,7 @@ object CheckHighForm extends Pass with LazyLogging {
}
}
-object CheckTypes extends Pass with LazyLogging {
+object CheckTypes extends Pass {
def name = "Check Types"
// Custom Exceptions
@@ -430,6 +426,7 @@ object CheckTypes extends Pass with LazyLogging {
object CheckGenders extends Pass {
def name = "Check Genders"
+ type GenderMap = collection.mutable.HashMap[String, Gender]
implicit def toStr(g: Gender): String = g match {
case MALE => "source"
@@ -444,7 +441,7 @@ object CheckGenders extends Pass {
def run (c:Circuit): Circuit = {
val errors = new Errors()
- def get_gender(e: Expression, genders: HashMap[String, Gender]): Gender = e match {
+ def get_gender(e: Expression, genders: GenderMap): Gender = e match {
case (e: WRef) => genders(e.name)
case (e: WSubIndex) => get_gender(e.exp, genders)
case (e: WSubAccess) => get_gender(e.exp, genders)
@@ -466,8 +463,7 @@ object CheckGenders extends Pass {
flip_rec(t, Default)
}
- def check_gender(info:Info, mname: String,
- genders: HashMap[String,Gender], desired: Gender)(e:Expression): Expression = {
+ def check_gender(info:Info, mname: String, genders: GenderMap, desired: Gender)(e:Expression): Expression = {
val gender = get_gender(e,genders)
(gender, desired) match {
case (MALE, FEMALE) =>
@@ -482,7 +478,7 @@ object CheckGenders extends Pass {
e
}
- def check_genders_e (info:Info, mname: String, genders: HashMap[String,Gender])(e:Expression): Expression = {
+ def check_genders_e (info:Info, mname: String, genders: GenderMap)(e:Expression): Expression = {
e match {
case e: Mux => e map check_gender(info, mname, genders, MALE)
case e: DoPrim => e.args map check_gender(info, mname, genders, MALE)
@@ -491,7 +487,7 @@ object CheckGenders extends Pass {
e map check_genders_e(info, mname, genders)
}
- def check_genders_s(minfo: Info, mname: String, genders: HashMap[String,Gender])(s: Statement): Statement = {
+ def check_genders_s(minfo: Info, mname: String, genders: GenderMap)(s: Statement): Statement = {
val info = get_info(s) match { case NoInfo => minfo case x => x }
s match {
case (s: DefWire) => genders(s.name) = BIGENDER
@@ -522,7 +518,7 @@ object CheckGenders extends Pass {
}
for (m <- c.modules) {
- val genders = HashMap[String, Gender]()
+ val genders = new GenderMap
genders ++= (m.ports map (p => p.name -> to_gender(p.direction)))
m map check_genders_s(m.info, m.name, genders)
}
diff --git a/src/main/scala/firrtl/passes/InferWidths.scala b/src/main/scala/firrtl/passes/InferWidths.scala
index 6b2ff6ed..ebec4d80 100644
--- a/src/main/scala/firrtl/passes/InferWidths.scala
+++ b/src/main/scala/firrtl/passes/InferWidths.scala
@@ -28,20 +28,19 @@ MODIFICATIONS.
package firrtl.passes
// Datastructures
-import scala.collection.mutable.{LinkedHashMap, HashMap, HashSet, ArrayBuffer}
+import scala.collection.mutable.ArrayBuffer
import scala.collection.immutable.ListMap
import firrtl._
import firrtl.ir._
import firrtl.Utils._
import firrtl.Mappers._
-import firrtl.PrimOps._
-import firrtl.WrappedExpression._
object InferWidths extends Pass {
def name = "Infer Widths"
+ type ConstraintMap = collection.mutable.LinkedHashMap[String, Width]
- def solve_constraints(l: Seq[WGeq]): LinkedHashMap[String, Width] = {
+ def solve_constraints(l: Seq[WGeq]): ConstraintMap = {
def unique(ls: Seq[Width]) : Seq[Width] =
(ls map (new WrappedWidth(_))).distinct map (_.w)
def make_unique(ls: Seq[WGeq]): ListMap[String,Width] = {
@@ -77,7 +76,7 @@ object InferWidths extends Pass {
case _ => w
}
- def substitute(h: LinkedHashMap[String, Width])(w: Width): Width = {
+ def substitute(h: ConstraintMap)(w: Width): Width = {
//;println-all-debug(["Substituting for [" w "]"])
val wx = simplify(w)
//;println-all-debug(["After Simplify: [" wx "]"])
@@ -98,7 +97,7 @@ object InferWidths extends Pass {
}
}
- def b_sub(h: LinkedHashMap[String, Width])(w: Width): Width = {
+ def b_sub(h: ConstraintMap)(w: Width): Width = {
w map b_sub(h) match {
case w: VarWidth => h getOrElse (w.name, w)
case w => w
@@ -145,7 +144,7 @@ object InferWidths extends Pass {
//for (x <- u) { println(x) }
//println("====================================")
- val f = LinkedHashMap[String, Width]()
+ val f = new ConstraintMap
val o = ArrayBuffer[String]()
for ((n, e) <- u) {
//println("==== SOLUTIONS TABLE ====")
@@ -175,7 +174,7 @@ object InferWidths extends Pass {
//for (x <- f) println(x)
//; Backwards Solve
- val b = LinkedHashMap[String, Width]()
+ val b = new ConstraintMap
for (i <- (o.size - 1) to 0 by -1) {
val n = o(i) // Should visit `o` backward
/*
diff --git a/src/main/scala/firrtl/passes/LowerTypes.scala b/src/main/scala/firrtl/passes/LowerTypes.scala
index 57f8fd76..c72c5fe3 100644
--- a/src/main/scala/firrtl/passes/LowerTypes.scala
+++ b/src/main/scala/firrtl/passes/LowerTypes.scala
@@ -27,8 +27,6 @@ MODIFICATIONS.
package firrtl.passes
-import com.typesafe.scalalogging.LazyLogging
-
import firrtl._
import firrtl.ir._
import firrtl.Utils._
diff --git a/src/main/scala/firrtl/passes/MemUtils.scala b/src/main/scala/firrtl/passes/MemUtils.scala
index 87033176..57a7120b 100644
--- a/src/main/scala/firrtl/passes/MemUtils.scala
+++ b/src/main/scala/firrtl/passes/MemUtils.scala
@@ -27,8 +27,6 @@
package firrtl.passes
-import com.typesafe.scalalogging.LazyLogging
-
import firrtl._
import firrtl.ir._
import firrtl.Utils._