aboutsummaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala32
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/hot/ResolveKindsBenchmark.scala23
2 files changed, 32 insertions, 23 deletions
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala
new file mode 100644
index 00000000..e7d907cd
--- /dev/null
+++ b/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala
@@ -0,0 +1,32 @@
+// See LICENSE for license details.
+
+package firrtl
+package benchmark
+package hot
+
+import firrtl.passes._
+import firrtl.stage.TransformManager
+
+import firrtl.benchmark.util._
+
+abstract class PassBenchmark(passFactory: () => Pass) extends App {
+ val inputFile = args(0)
+ val warmup = args(1).toInt
+ val runs = args(2).toInt
+
+ val input = filenameToCircuit(inputFile)
+ val inputState = CircuitState(input, ChirrtlForm)
+
+ val manager = new TransformManager(passFactory().prerequisites)
+ val preState = manager.execute(inputState)
+
+ hot.util.benchmark(warmup, runs)(passFactory().run(preState.circuit))
+}
+
+object ResolveKindsBenchmark extends PassBenchmark(() => ResolveKinds)
+
+object CheckHighFormBenchmark extends PassBenchmark(() => CheckHighForm)
+
+object CheckWidthsBenchmark extends PassBenchmark(() => CheckWidths)
+
+object InferBinaryPointsBenchmark extends PassBenchmark(() => new InferBinaryPoints)
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/ResolveKindsBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/ResolveKindsBenchmark.scala
deleted file mode 100644
index 61e9c1a6..00000000
--- a/benchmark/src/main/scala/firrtl/benchmark/hot/ResolveKindsBenchmark.scala
+++ /dev/null
@@ -1,23 +0,0 @@
-
-package firrtl
-package benchmark
-package hot
-
-import passes.ResolveKinds
-import stage.TransformManager
-
-import firrtl.benchmark.util._
-
-object ResolveKindsBenchmark extends App {
- val inputFile = args(0)
- val warmup = args(1).toInt
- val runs = args(2).toInt
-
- val input = filenameToCircuit(inputFile)
- val state = CircuitState(input, ChirrtlForm)
- val prereqs = ResolveKinds.prerequisites
- val manager = new TransformManager(prereqs)
- val preState = manager.execute(state)
-
- hot.util.benchmark(warmup, runs)(ResolveKinds.run(preState.circuit))
-}