diff options
| author | chick | 2016-09-23 16:20:32 -0700 |
|---|---|---|
| committer | Donggyu Kim | 2016-09-25 14:39:44 -0700 |
| commit | f214b7301c0a9bd2de22a5fceebd754ae119c59e (patch) | |
| tree | a0a046639330d039016ebabf2365e73d0d4224fc /src/main/scala/firrtl/passes/ReplaceAccesses.scala | |
| parent | 0c34f5c8642a9a2eea113461decff57f148b2d81 (diff) | |
Change file name ReplacesSubAccesses ReplaceAccess
Diffstat (limited to 'src/main/scala/firrtl/passes/ReplaceAccesses.scala')
| -rw-r--r-- | src/main/scala/firrtl/passes/ReplaceAccesses.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/passes/ReplaceAccesses.scala b/src/main/scala/firrtl/passes/ReplaceAccesses.scala new file mode 100644 index 00000000..ce95be13 --- /dev/null +++ b/src/main/scala/firrtl/passes/ReplaceAccesses.scala @@ -0,0 +1,27 @@ +package firrtl.passes + +import firrtl.ir._ +import firrtl.{WRef, WSubAccess, WSubIndex, WSubField} +import firrtl.Mappers._ +import firrtl.Utils._ +import firrtl.WrappedExpression._ +import firrtl.Namespace +import scala.collection.mutable + + +/** Replaces constant [[firrtl.WSubAccess]] with [[firrtl.WSubIndex]] + * TODO Fold in to High Firrtl Const Prop + */ +object ReplaceAccesses extends Pass { + def name = "Replace Accesses" + + def run(c: Circuit): Circuit = { + def onStmt(s: Statement): Statement = s map onStmt map onExp + def onExp(e: Expression): Expression = e match { + case WSubAccess(e, UIntLiteral(value, width), t, g) => WSubIndex(e, value.toInt, t, g) + case e => e map onExp + } + + c copy (modules = c.modules map (_ map onStmt)) + } +} |
