aboutsummaryrefslogtreecommitdiff
path: root/benchmark/src/main
diff options
context:
space:
mode:
authorAlbert Magyar2020-05-26 13:59:29 -0700
committerAlbert Magyar2020-06-03 13:49:20 -0700
commit881124333e78e91581f91488e5f43fa08911d3b1 (patch)
tree514d8b753a793293a4b0c147dbfa5d1715a1644c /benchmark/src/main
parentb4192bba22c1d95daf354e900886a6690bb55e09 (diff)
Generalize pattern of ResolveKindsBenchmark
* Extend PassBenchmark to benchmark a particular Pass * Add license note to file
Diffstat (limited to 'benchmark/src/main')
-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))
-}