diff options
| author | Schuyler Eldridge | 2018-08-22 16:11:34 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2018-11-07 13:49:16 -0500 |
| commit | 845c857b63474c7f584287154e9316a5721ea680 (patch) | |
| tree | d4a85dcedda3dc7e71ab2879bb287478e336b3c8 /src | |
| parent | 9516799355c0568409f8f01cfaf5a56a495d40fe (diff) | |
Make CheckCombLoops 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/CheckCombLoops.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 index 6a6a858d..bc169b38 100644 --- a/src/main/resources/META-INF/services/firrtl.options.RegisteredTransform +++ b/src/main/resources/META-INF/services/firrtl.options.RegisteredTransform @@ -1 +1,2 @@ firrtl.transforms.DeadCodeElimination +firrtl.transforms.CheckCombLoops diff --git a/src/main/scala/firrtl/transforms/CheckCombLoops.scala b/src/main/scala/firrtl/transforms/CheckCombLoops.scala index 44785c62..1a5861c5 100644 --- a/src/main/scala/firrtl/transforms/CheckCombLoops.scala +++ b/src/main/scala/firrtl/transforms/CheckCombLoops.scala @@ -15,6 +15,8 @@ import firrtl.annotations._ import firrtl.Utils.throwInternalError import firrtl.graph.{MutableDiGraph,DiGraph} import firrtl.analyses.InstanceGraph +import firrtl.options.RegisteredTransform +import scopt.OptionParser object CheckCombLoops { class CombLoopException(info: Info, mname: String, cycle: Seq[String]) extends PassException( @@ -42,12 +44,18 @@ case class CombinationalPath(sink: ComponentName, sources: Seq[ComponentName]) e * @note The pass cannot find loops that pass through ExtModules * @note The pass will throw exceptions on "false paths" */ -class CheckCombLoops extends Transform { +class CheckCombLoops extends Transform with RegisteredTransform { def inputForm = LowForm def outputForm = LowForm import CheckCombLoops._ + def addOptions(parser: OptionParser[AnnotationSeq]): Unit = parser + .opt[Unit]("no-check-comb-loops") + .action( (x, c) => c :+ DontCheckCombLoopsAnnotation ) + .maxOccurs(1) + .text("Do NOT check for combinational loops (not recommended)") + /* * A case class that represents a net in the circuit. This is * necessary since combinational loop checking is an analysis on the |
