aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/transforms/ConstantPropagation.scala
diff options
context:
space:
mode:
authorJack Koenig2017-12-12 16:06:31 -0800
committerGitHub2017-12-12 16:06:31 -0800
commitdf579547f769843b76922dbb055ea26839b1d7d4 (patch)
treef557811fb961a3125bbfef95815eb81f72ca8346 /src/main/scala/firrtl/transforms/ConstantPropagation.scala
parent0fd0c66adcf1226ee5947cdaa5629bf59c4123f1 (diff)
parent0d794d57df7b388109d7a0834d3b5be8f79892be (diff)
Merge pull request #684 from freechipsproject/remove-wires
Remove wires, replacing them with nodes
Diffstat (limited to 'src/main/scala/firrtl/transforms/ConstantPropagation.scala')
-rw-r--r--src/main/scala/firrtl/transforms/ConstantPropagation.scala15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main/scala/firrtl/transforms/ConstantPropagation.scala b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
index 84b63e3d..ca48cbb5 100644
--- a/src/main/scala/firrtl/transforms/ConstantPropagation.scala
+++ b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
@@ -16,15 +16,20 @@ import firrtl.analyses.InstanceGraph
import annotation.tailrec
import collection.mutable
-class ConstantPropagation extends Transform {
- def inputForm = LowForm
- def outputForm = LowForm
-
- private def pad(e: Expression, t: Type) = (bitWidth(e.tpe), bitWidth(t)) match {
+object ConstantPropagation {
+ /** Pads e to the width of t */
+ def pad(e: Expression, t: Type) = (bitWidth(e.tpe), bitWidth(t)) match {
case (we, wt) if we < wt => DoPrim(Pad, Seq(e), Seq(wt), t)
case (we, wt) if we == wt => e
}
+}
+
+class ConstantPropagation extends Transform {
+ import ConstantPropagation._
+ def inputForm = LowForm
+ def outputForm = LowForm
+
private def asUInt(e: Expression, t: Type) = DoPrim(AsUInt, Seq(e), Seq(), t)
trait FoldLogicalOp {