diff options
| author | Jim Lawson | 2019-04-29 14:31:36 -0700 |
|---|---|---|
| committer | Jim Lawson | 2019-04-29 14:31:36 -0700 |
| commit | 9960f3d143c5f95491ea70e4f2410cbcc0c41004 (patch) | |
| tree | 8f7db2d59bc5edc740f9adf4b965df7d5c8ad66b /src | |
| parent | a7cf6ff3416a11088d811a435ba71fd36b191fb4 (diff) | |
Update NoCircuitDedupAnnotation so it's available from firrtl.stage.FirrtlMain
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/options/Shell.scala | 4 | ||||
| -rw-r--r-- | src/main/scala/firrtl/transforms/Dedup.scala | 16 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/main/scala/firrtl/options/Shell.scala b/src/main/scala/firrtl/options/Shell.scala index 28c0554a..7e338332 100644 --- a/src/main/scala/firrtl/options/Shell.scala +++ b/src/main/scala/firrtl/options/Shell.scala @@ -3,6 +3,7 @@ package firrtl.options import firrtl.AnnotationSeq +import firrtl.transforms.NoCircuitDedupAnnotation import logger.{LogLevelAnnotation, ClassLogLevelAnnotation, LogFileAnnotation, LogClassNamesAnnotation} @@ -64,7 +65,8 @@ class Shell(val applicationName: String) { ProgramArgsAnnotation.addOptions(parser) Seq( TargetDirAnnotation, InputAnnotationFileAnnotation, - OutputAnnotationFileAnnotation ) + OutputAnnotationFileAnnotation, + NoCircuitDedupAnnotation) .foreach(_.addOptions(parser)) parser.opt[Unit]("show-registrations") diff --git a/src/main/scala/firrtl/transforms/Dedup.scala b/src/main/scala/firrtl/transforms/Dedup.scala index 609b5935..1db1e1ed 100644 --- a/src/main/scala/firrtl/transforms/Dedup.scala +++ b/src/main/scala/firrtl/transforms/Dedup.scala @@ -6,10 +6,10 @@ package transforms import firrtl.ir._ import firrtl.Mappers._ import firrtl.analyses.InstanceGraph -import firrtl.annotations.TargetToken.{Instance, OfModule, Ref} import firrtl.annotations._ import firrtl.passes.{InferTypes, MemPortUtils} import firrtl.Utils.throwInternalError +import firrtl.options.{HasShellOptions, ShellOption} // Datastructures import scala.collection.mutable @@ -20,7 +20,19 @@ case class NoDedupAnnotation(target: ModuleName) extends SingleTargetAnnotation[ def duplicate(n: ModuleName): NoDedupAnnotation = NoDedupAnnotation(n) } -case object NoCircuitDedupAnnotation extends NoTargetAnnotation +/** If this [[firrtl.annotations.Annotation Annotation]] exists in an [[firrtl.AnnotationSeq AnnotationSeq]], + * then the [[firrtl.transforms.DedupModules]] transform will *NOT* be run on the circuit. + * - set with '--no-dedup' + */ +case object NoCircuitDedupAnnotation extends NoTargetAnnotation with HasShellOptions { + + val options = Seq( + new ShellOption[Unit]( + longOption = "no-dedup", + toAnnotationSeq = _ => Seq(NoCircuitDedupAnnotation), + helpText = "Do NOT dedup modules" ) ) + +} /** Only use on legal Firrtl. * |
