diff options
| author | Jack Koenig | 2017-12-12 16:06:31 -0800 |
|---|---|---|
| committer | GitHub | 2017-12-12 16:06:31 -0800 |
| commit | df579547f769843b76922dbb055ea26839b1d7d4 (patch) | |
| tree | f557811fb961a3125bbfef95815eb81f72ca8346 /src/main/scala/firrtl/transforms/ConstantPropagation.scala | |
| parent | 0fd0c66adcf1226ee5947cdaa5629bf59c4123f1 (diff) | |
| parent | 0d794d57df7b388109d7a0834d3b5be8f79892be (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.scala | 15 |
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 { |
