aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Passes.scala
diff options
context:
space:
mode:
authorducky2016-01-16 16:31:16 -0800
committerducky2016-01-16 16:31:16 -0800
commit5869b8e201390b534b06b8960ab32351e51602c0 (patch)
treea2e71cb01f9897299498c2aa8086482dbf451656 /src/main/scala/firrtl/Passes.scala
parenta9d181e351f1c13c009f75cef3106f25ea435d1a (diff)
Import a logging library so we don't reinvent the wheel and have implicits flying around everywhere
Diffstat (limited to 'src/main/scala/firrtl/Passes.scala')
-rw-r--r--src/main/scala/firrtl/Passes.scala45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/main/scala/firrtl/Passes.scala b/src/main/scala/firrtl/Passes.scala
index 5aa74630..9469b6cb 100644
--- a/src/main/scala/firrtl/Passes.scala
+++ b/src/main/scala/firrtl/Passes.scala
@@ -1,11 +1,13 @@
package firrtl
+import com.typesafe.scalalogging.LazyLogging
+
import Utils._
import DebugUtils._
import Primops._
-object Passes {
+object Passes extends LazyLogging {
// TODO Perhaps we should get rid of Logger since this map would be nice
////private val defaultLogger = Logger()
@@ -13,7 +15,6 @@ object Passes {
// "infer-types" -> inferTypes
//)
def nameToPass(name: String): Circuit => Circuit = {
- implicit val logger = Logger() // throw logging away
//mapNameToPass.getOrElse(name, throw new Exception("No Standard FIRRTL Pass of name " + name))
name match {
case "infer-types" => inferTypes
@@ -22,8 +23,8 @@ object Passes {
}
}
- private def toField(p: Port)(implicit logger: Logger): Field = {
- logger.trace(s"toField called on port ${p.serialize}")
+ private def toField(p: Port): Field = {
+ logger.debug(s"toField called on port ${p.serialize}")
p.dir match {
case Input => Field(p.name, Reverse, p.tpe)
case Output => Field(p.name, Default, p.tpe)
@@ -55,8 +56,8 @@ object Passes {
}
private def getVectorSubtype(t: Type): Type = t.getType // Added for clarity
// TODO Add genders
- private def inferExpTypes(typeMap: TypeMap)(exp: Exp)(implicit logger: Logger): Exp = {
- logger.trace(s"inferTypes called on ${exp.getClass.getSimpleName}")
+ private def inferExpTypes(typeMap: TypeMap)(exp: Exp): Exp = {
+ logger.debug(s"inferTypes called on ${exp.getClass.getSimpleName}")
exp.map(inferExpTypes(typeMap)) match {
case e: UIntValue => e
case e: SIntValue => e
@@ -67,8 +68,8 @@ object Passes {
case e: Exp => e
}
}
- private def inferTypes(typeMap: TypeMap, stmt: Stmt)(implicit logger: Logger): (Stmt, TypeMap) = {
- logger.trace(s"inferTypes called on ${stmt.getClass.getSimpleName} ")
+ private def inferTypes(typeMap: TypeMap, stmt: Stmt): (Stmt, TypeMap) = {
+ logger.debug(s"inferTypes called on ${stmt.getClass.getSimpleName} ")
stmt.map(inferExpTypes(typeMap)) match {
case b: Block => {
var tMap = typeMap
@@ -95,15 +96,15 @@ object Passes {
case s: Stmt => (s, typeMap)
}
}
- private def inferTypes(typeMap: TypeMap, m: Module)(implicit logger: Logger): Module = {
- logger.trace(s"inferTypes called on module ${m.name}")
+ private def inferTypes(typeMap: TypeMap, m: Module): Module = {
+ logger.debug(s"inferTypes called on module ${m.name}")
val pTypeMap = m.ports.map( p => p.name -> p.tpe ).toMap
Module(m.info, m.name, m.ports, inferTypes(typeMap ++ pTypeMap, m.stmt)._1)
}
- def inferTypes(c: Circuit)(implicit logger: Logger): Circuit = {
- logger.trace(s"inferTypes called on circuit ${c.name}")
+ def inferTypes(c: Circuit): Circuit = {
+ logger.debug(s"inferTypes called on circuit ${c.name}")
// initialize typeMap with each module of circuit mapped to their bundled IO (ports converted to fields)
val typeMap = c.modules.map(m => m.name -> BundleType(m.ports.map(toField(_)))).toMap
@@ -115,8 +116,8 @@ object Passes {
def renameall(s : String)(implicit map : Map[String,String]) : String =
map getOrElse (s, s)
- def renameall(e : Exp)(implicit logger : Logger, map : Map[String,String]) : Exp = {
- logger.trace(s"renameall called on expression ${e.toString}")
+ def renameall(e : Exp)(implicit map : Map[String,String]) : Exp = {
+ logger.debug(s"renameall called on expression ${e.toString}")
e match {
case p : Ref =>
Ref(renameall(p.name), p.tpe)
@@ -131,8 +132,8 @@ object Passes {
}
}
- def renameall(s : Stmt)(implicit logger : Logger, map : Map[String,String]) : Stmt = {
- logger.trace(s"renameall called on statement ${s.toString}")
+ def renameall(s : Stmt)(implicit map : Map[String,String]) : Stmt = {
+ logger.debug(s"renameall called on statement ${s.toString}")
s match {
case p : DefWire =>
@@ -165,20 +166,20 @@ object Passes {
}
}
- def renameall(p : Port)(implicit logger : Logger, map : Map[String,String]) : Port = {
- logger.trace(s"renameall called on port ${p.name}")
+ def renameall(p : Port)(implicit map : Map[String,String]) : Port = {
+ logger.debug(s"renameall called on port ${p.name}")
Port(p.info, renameall(p.name), p.dir, p.tpe)
}
- def renameall(m : Module)(implicit logger : Logger, map : Map[String,String]) : Module = {
- logger.trace(s"renameall called on module ${m.name}")
+ def renameall(m : Module)(implicit map : Map[String,String]) : Module = {
+ logger.debug(s"renameall called on module ${m.name}")
Module(m.info, renameall(m.name), m.ports.map(renameall(_)), renameall(m.stmt))
}
- def renameall(map : Map[String,String])(implicit logger : Logger) : Circuit => Circuit = {
+ def renameall(map : Map[String,String]) : Circuit => Circuit = {
c => {
implicit val imap = map
- logger.trace(s"renameall called on circuit ${c.name} with %{renameto}")
+ logger.debug(s"renameall called on circuit ${c.name} with %{renameto}")
Circuit(c.info, renameall(c.name), c.modules.map(renameall(_)))
}
}