aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/passes
diff options
context:
space:
mode:
authorJim Lawson2018-02-16 17:10:30 -0800
committerGitHub2018-02-16 17:10:30 -0800
commitedcb81a34dbf8a04d0b011aa1ca07c6e19598f23 (patch)
treeaba2e3b8b921f9fdc861ed51687735f6d18d7bff /src/main/scala/firrtl/passes
parent74a3b302df4422bec47e754cad1703b36ff75cd2 (diff)
Replacematcherror - catch exceptions and convert to internal error. (#424)
* Catch exceptions and convert to internal error. We need to update the displayed message to incorporate a line number and text to be used for the issue. * Cleanup exception handling/throwing. Re-throw expected (or uncorrectable exceptions). Provide Utils.getThrowable() to get the first (eldest) or last throwable in the chain. Update tests to conform to FreeSpec protocol. * Minor cleanup Admit we've updated some deprecated ScalaTest methods.
Diffstat (limited to 'src/main/scala/firrtl/passes')
-rw-r--r--src/main/scala/firrtl/passes/CheckWidths.scala2
-rw-r--r--src/main/scala/firrtl/passes/ConvertFixedToSInt.scala6
-rw-r--r--src/main/scala/firrtl/passes/ExpandWhens.scala2
-rw-r--r--src/main/scala/firrtl/passes/InferWidths.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveAccesses.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveValidIf.scala2
-rw-r--r--src/main/scala/firrtl/passes/Resolves.scala9
-rw-r--r--src/main/scala/firrtl/passes/Uniquify.scala2
-rw-r--r--src/main/scala/firrtl/passes/clocklist/ClockList.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/YamlUtils.scala2
11 files changed, 17 insertions, 16 deletions
diff --git a/src/main/scala/firrtl/passes/CheckWidths.scala b/src/main/scala/firrtl/passes/CheckWidths.scala
index 8f6ab18f..55391d99 100644
--- a/src/main/scala/firrtl/passes/CheckWidths.scala
+++ b/src/main/scala/firrtl/passes/CheckWidths.scala
@@ -50,7 +50,7 @@ object CheckWidths extends Pass {
def hasWidth(tpe: Type): Boolean = tpe match {
case GroundType(IntWidth(w)) => true
case GroundType(_) => false
- case _ => println(tpe); throwInternalError
+ case _ => throwInternalError(Some(s"hasWidth - $tpe"))
}
def check_width_t(info: Info, mname: String)(t: Type): Type =
diff --git a/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala b/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
index 05604bd8..b52dacb7 100644
--- a/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
+++ b/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
@@ -7,7 +7,7 @@ import firrtl.PrimOps._
import firrtl.ir._
import firrtl._
import firrtl.Mappers._
-import firrtl.Utils.{sub_type, module_type, field_type, max, error}
+import firrtl.Utils.{sub_type, module_type, field_type, max, error, throwInternalError}
/** Replaces FixedType with SIntType, and correctly aligns all binary points
*/
@@ -19,7 +19,7 @@ object ConvertFixedToSInt extends Pass {
} else if (point - p < 0) {
DoPrim(Shr, Seq(e), Seq(p - point), UnknownType)
} else e
- case FixedType(w, p) => error("Shouldn't be here")
+ case FixedType(w, p) => throwInternalError(Some(s"alignArg: shouldn't be here - $e"))
case _ => e
}
def calcPoint(es: Seq[Expression]): BigInt =
@@ -29,7 +29,7 @@ object ConvertFixedToSInt extends Pass {
}).reduce(max(_, _))
def toSIntType(t: Type): Type = t match {
case FixedType(IntWidth(w), IntWidth(p)) => SIntType(IntWidth(w))
- case FixedType(w, p) => error("Shouldn't be here")
+ case FixedType(w, p) => throwInternalError(Some(s"toSIntType: shouldn't be here - $t"))
case _ => t map toSIntType
}
def run(c: Circuit): Circuit = {
diff --git a/src/main/scala/firrtl/passes/ExpandWhens.scala b/src/main/scala/firrtl/passes/ExpandWhens.scala
index 959e824a..519a1e1a 100644
--- a/src/main/scala/firrtl/passes/ExpandWhens.scala
+++ b/src/main/scala/firrtl/passes/ExpandWhens.scala
@@ -169,7 +169,7 @@ object ExpandWhens extends Pass {
}
Block(Seq(conseqStmt, altStmt) ++ memos)
case block: Block => block map expandWhens(netlist, defaults, p)
- case _ => throwInternalError
+ case _ => throwInternalError()
}
val netlist = new Netlist
// Add ports to netlist
diff --git a/src/main/scala/firrtl/passes/InferWidths.scala b/src/main/scala/firrtl/passes/InferWidths.scala
index 11b819ce..aacd3656 100644
--- a/src/main/scala/firrtl/passes/InferWidths.scala
+++ b/src/main/scala/firrtl/passes/InferWidths.scala
@@ -333,7 +333,7 @@ object InferWidths extends Pass {
case wx: MinusWidth => map2(solve(wx.arg1), solve(wx.arg2), {_ - _})
case wx: ExpWidth => map2(Some(BigInt(2)), solve(wx.arg1), pow_minus_one)
case wx: IntWidth => Some(wx.width)
- case wx => println(wx); error("Shouldn't be here"); None;
+ case wx => throwInternalError(Some(s"solve: shouldn't be here - %$wx")); None;
}
solve(w) match {
diff --git a/src/main/scala/firrtl/passes/RemoveAccesses.scala b/src/main/scala/firrtl/passes/RemoveAccesses.scala
index 37b92a9e..9b19b221 100644
--- a/src/main/scala/firrtl/passes/RemoveAccesses.scala
+++ b/src/main/scala/firrtl/passes/RemoveAccesses.scala
@@ -95,7 +95,7 @@ object RemoveAccesses extends Pass {
case (_:WSubAccess| _: WSubField| _: WSubIndex| _: WRef) if hasAccess(e) =>
val rs = getLocations(e)
rs find (x => x.guard != one) match {
- case None => error("Shouldn't be here")
+ case None => throwInternalError(Some(s"removeMale: shouldn't be here - $e"))
case Some(_) =>
val (wire, temp) = create_temp(e)
val temps = create_exps(temp)
diff --git a/src/main/scala/firrtl/passes/RemoveValidIf.scala b/src/main/scala/firrtl/passes/RemoveValidIf.scala
index 68d16c30..7d714be7 100644
--- a/src/main/scala/firrtl/passes/RemoveValidIf.scala
+++ b/src/main/scala/firrtl/passes/RemoveValidIf.scala
@@ -24,7 +24,7 @@ object RemoveValidIf extends Pass {
case _: UIntType => UIntZero
case _: SIntType => SIntZero
case ClockType => ClockZero
- case other => throwInternalError
+ case other => throwInternalError()
}
// Recursive. Replaces IsInvalid with connecting zero
diff --git a/src/main/scala/firrtl/passes/Resolves.scala b/src/main/scala/firrtl/passes/Resolves.scala
index c8ba43bf..b601c81e 100644
--- a/src/main/scala/firrtl/passes/Resolves.scala
+++ b/src/main/scala/firrtl/passes/Resolves.scala
@@ -5,6 +5,7 @@ package firrtl.passes
import firrtl._
import firrtl.ir._
import firrtl.Mappers._
+import Utils.throwInternalError
object ResolveKinds extends Pass {
type KindMap = collection.mutable.LinkedHashMap[String, Kind]
@@ -84,19 +85,19 @@ object CInferMDir extends Pass {
mports get e.name match {
case None =>
case Some(p) => mports(e.name) = (p, dir) match {
- case (MInfer, MInfer) => Utils.error("Shouldn't be here")
+ case (MInfer, MInfer) => throwInternalError(Some(s"infer_mdir_e: shouldn't be here - $p, $dir"))
case (MInfer, MWrite) => MWrite
case (MInfer, MRead) => MRead
case (MInfer, MReadWrite) => MReadWrite
- case (MWrite, MInfer) => Utils.error("Shouldn't be here")
+ case (MWrite, MInfer) => throwInternalError(Some(s"infer_mdir_e: shouldn't be here - $p, $dir"))
case (MWrite, MWrite) => MWrite
case (MWrite, MRead) => MReadWrite
case (MWrite, MReadWrite) => MReadWrite
- case (MRead, MInfer) => Utils.error("Shouldn't be here")
+ case (MRead, MInfer) => throwInternalError(Some(s"infer_mdir_e: shouldn't be here - $p, $dir"))
case (MRead, MWrite) => MReadWrite
case (MRead, MRead) => MRead
case (MRead, MReadWrite) => MReadWrite
- case (MReadWrite, MInfer) => Utils.error("Shouldn't be here")
+ case (MReadWrite, MInfer) => throwInternalError(Some(s"infer_mdir_e: shouldn't be here - $p, $dir"))
case (MReadWrite, MWrite) => MReadWrite
case (MReadWrite, MRead) => MReadWrite
case (MReadWrite, MReadWrite) => MReadWrite
diff --git a/src/main/scala/firrtl/passes/Uniquify.scala b/src/main/scala/firrtl/passes/Uniquify.scala
index 54b94939..661dbf4e 100644
--- a/src/main/scala/firrtl/passes/Uniquify.scala
+++ b/src/main/scala/firrtl/passes/Uniquify.scala
@@ -109,7 +109,7 @@ object Uniquify extends Transform {
}
recUniquifyNames(t, namespace) match {
case tx: BundleType => tx
- case tx => error("Shouldn't be here")
+ case tx => throwInternalError(Some(s"uniquifyNames: shouldn't be here - $tx"))
}
}
diff --git a/src/main/scala/firrtl/passes/clocklist/ClockList.scala b/src/main/scala/firrtl/passes/clocklist/ClockList.scala
index 073eb050..be4d99fc 100644
--- a/src/main/scala/firrtl/passes/clocklist/ClockList.scala
+++ b/src/main/scala/firrtl/passes/clocklist/ClockList.scala
@@ -44,7 +44,7 @@ class ClockList(top: String, writer: Writer) extends Pass {
val modulesToInline = (c.modules.collect { case Module(_, n, _, _) if n != top => ModuleName(n, CircuitName(c.main)) }).toSet
val inlineTransform = new InlineInstances
val inlinedCircuit = inlineTransform.run(onlyClockCircuit, modulesToInline, Set(), None).circuit
- val topModule = inlinedCircuit.modules.find(_.name == top).getOrElse(throwInternalError)
+ val topModule = inlinedCircuit.modules.find(_.name == top).getOrElse(throwInternalError(Some("no top module")))
// Build a hashmap of connections to use for getOrigins
val connects = getConnects(topModule)
diff --git a/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala b/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
index b18ed289..bf0612ac 100644
--- a/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
+++ b/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
@@ -224,7 +224,7 @@ class ReplaceMemMacros(writer: ConfWriter) extends Transform {
val pins = getMyAnnotations(state) match {
case Nil => Nil
case Seq(PinAnnotation(CircuitName(c), pins)) => pins
- case _ => throwInternalError
+ case _ => throwInternalError(Some(s"execute: getMyAnnotations - ${getMyAnnotations(state)}"))
}
val annos = (pins.foldLeft(Seq[Annotation]()) { (seq, pin) =>
seq ++ memMods.collect {
diff --git a/src/main/scala/firrtl/passes/memlib/YamlUtils.scala b/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
index 4cc28e42..3e0c6a44 100644
--- a/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
+++ b/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
@@ -31,7 +31,7 @@ class YamlFileReader(file: String) {
catch { case e: Exception => None }
)
}
- else error("Yaml file doesn't exist!")
+ else sys.error("Yaml file doesn't exist!")
}
}