aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorSchuyler Eldridge2018-12-19 16:50:01 -0500
committerSchuyler Eldridge2018-12-19 16:53:21 -0500
commitf11a0f03511c6380faec7f012eb1314007ca4823 (patch)
tree585908b605b3c870bf0f870fec50961c491ca950 /src/main
parent3655ae091249a72bd424073cfb4a382a5ab170c6 (diff)
Add IdentityTransform
This adds an identity transform that applies an identity function to some CircuitState, i.e., it just returns the original CircuitState. This is useful for transform generators that may, for edge cases, generate an empty transform sequence. Other classes (e.g., Compiler) have explicit or implicit requirements that a transform sequence is non-empty. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/firrtl/transforms/IdentityTransform.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/transforms/IdentityTransform.scala b/src/main/scala/firrtl/transforms/IdentityTransform.scala
new file mode 100644
index 00000000..a39ca4b7
--- /dev/null
+++ b/src/main/scala/firrtl/transforms/IdentityTransform.scala
@@ -0,0 +1,17 @@
+// See LICENSE for license details.
+
+package firrtl.transforms
+
+import firrtl.{CircuitForm, CircuitState, Transform}
+
+/** Transform that applies an identity function. This returns an unmodified [[CircuitState]].
+ * @param form the input and output [[CircuitForm]]
+ */
+class IdentityTransform(form: CircuitForm) extends Transform {
+
+ final override def inputForm: CircuitForm = form
+ final override def outputForm: CircuitForm = form
+
+ final def execute(state: CircuitState): CircuitState = state
+
+}