diff options
| author | Schuyler Eldridge | 2018-08-22 16:11:59 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2018-11-07 13:49:16 -0500 |
| commit | 9516799355c0568409f8f01cfaf5a56a495d40fe (patch) | |
| tree | 0c714216f53dfc6a0c736726729c4da795d5fbb4 /src | |
| parent | 7a4f15aa27aed8ce9cc180fb89126a954638e102 (diff) | |
Make DeadCodeElimination a RegisteredTransform
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/resources/META-INF/services/firrtl.options.RegisteredTransform | 1 | ||||
| -rw-r--r-- | src/main/scala/firrtl/transforms/DeadCodeElimination.scala | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/resources/META-INF/services/firrtl.options.RegisteredTransform b/src/main/resources/META-INF/services/firrtl.options.RegisteredTransform new file mode 100644 index 00000000..6a6a858d --- /dev/null +++ b/src/main/resources/META-INF/services/firrtl.options.RegisteredTransform @@ -0,0 +1 @@ +firrtl.transforms.DeadCodeElimination diff --git a/src/main/scala/firrtl/transforms/DeadCodeElimination.scala b/src/main/scala/firrtl/transforms/DeadCodeElimination.scala index 523c997b..8f9fad46 100644 --- a/src/main/scala/firrtl/transforms/DeadCodeElimination.scala +++ b/src/main/scala/firrtl/transforms/DeadCodeElimination.scala @@ -11,6 +11,8 @@ import firrtl.Mappers._ import firrtl.WrappedExpression._ import firrtl.Utils.{throwInternalError, toWrappedExpression, kind} import firrtl.MemoizedHash._ +import firrtl.options.RegisteredTransform +import scopt.OptionParser import collection.mutable import java.io.{File, FileWriter} @@ -30,10 +32,16 @@ import java.io.{File, FileWriter} * circumstances of their instantiation in their parent module, they will still not be removed. To * remove such modules, use the [[NoDedupAnnotation]] to prevent deduplication. */ -class DeadCodeElimination extends Transform with ResolvedAnnotationPaths { +class DeadCodeElimination extends Transform with ResolvedAnnotationPaths with RegisteredTransform { def inputForm = LowForm def outputForm = LowForm + def addOptions(parser: OptionParser[AnnotationSeq]): Unit = parser + .opt[Unit]("no-dce") + .action( (x, c) => c :+ NoDCEAnnotation ) + .maxOccurs(1) + .text("Do NOT run dead code elimination") + /** Based on LogicNode ins CheckCombLoops, currently kind of faking it */ private type LogicNode = MemoizedHash[WrappedExpression] private object LogicNode { |
