diff options
| author | albertchen-sifive | 2018-07-20 14:36:30 -0700 |
|---|---|---|
| committer | Adam Izraelevitz | 2018-07-20 14:36:30 -0700 |
| commit | 7dff927840a30893facae957595a8e88ea62509a (patch) | |
| tree | 08210d9b2936fc4606ae8a0fe1c9f12a8c7c673e /src/main/scala/firrtl/analyses | |
| parent | 897dad039a12a49b3c4ae833fbf0d02087b26ed5 (diff) | |
Constant prop add (#849)
* add FoldADD to const prop, add yosys miter tests
* add option for verilog compiler without optimizations
* rename FoldLogicalOp to FoldCommutativeOp
* add GetNamespace and RenameModules, GetNamespace stores namespace as a ModuleNamespaceAnnotation
* add constant propagation for Tail DoPrims
* add scaladocs for MinimumLowFirrtlOptimization and yosysExpectFalure/Success, add constant propagation for Head DoPrim
* add legalize pass to MinimumLowFirrtlOptimizations, use constPropBitExtract in legalize pass
Diffstat (limited to 'src/main/scala/firrtl/analyses')
| -rw-r--r-- | src/main/scala/firrtl/analyses/GetNamespace.scala | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/analyses/GetNamespace.scala b/src/main/scala/firrtl/analyses/GetNamespace.scala new file mode 100644 index 00000000..5ab096b7 --- /dev/null +++ b/src/main/scala/firrtl/analyses/GetNamespace.scala @@ -0,0 +1,22 @@ +// See LICENSE for license details. + +package firrtl.analyses + +import firrtl.annotations.NoTargetAnnotation +import firrtl.{CircuitState, LowForm, Namespace, Transform} + +case class ModuleNamespaceAnnotation(namespace: Namespace) extends NoTargetAnnotation + +/** Create a namespace with this circuit + * + * namespace is used by RenameModules to get unique names + */ +class GetNamespace extends Transform { + def inputForm: LowForm.type = LowForm + def outputForm: LowForm.type = LowForm + + def execute(state: CircuitState): CircuitState = { + val namespace = Namespace(state.circuit) + state.copy(annotations = new ModuleNamespaceAnnotation(namespace) +: state.annotations) + } +} |
