From e571ef88f7f69b2374fa9ba86e219523645213c6 Mon Sep 17 00:00:00 2001 From: Donggyu Date: Thu, 9 Mar 2017 17:29:45 -0800 Subject: make sure infer-rw works for exclusive when statements (#481) --- src/main/scala/firrtl/passes/memlib/InferReadWrite.scala | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/main/scala') diff --git a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala index b941503f..9bd6a4ab 100644 --- a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala +++ b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala @@ -39,8 +39,11 @@ object InferReadWritePass extends Pass { def getProductTerms(connects: Connects)(e: Expression): Seq[Expression] = e match { // No ConstProp yet... + // TODO: do const prop before case Mux(cond, tval, fval, _) if weq(tval, one) && weq(fval, zero) => getProductTerms(connects)(cond) + case Mux(cond, tval, fval, _) if weq(fval, zero) => + getProductTerms(connects)(cond) ++ getProductTerms(connects)(tval) // Visit each term of AND operation case DoPrim(op, args, consts, tpe) if op == And => e +: (args flatMap getProductTerms(connects)) -- cgit v1.2.3