From 881124333e78e91581f91488e5f43fa08911d3b1 Mon Sep 17 00:00:00 2001 From: Albert Magyar Date: Tue, 26 May 2020 13:59:29 -0700 Subject: Generalize pattern of ResolveKindsBenchmark * Extend PassBenchmark to benchmark a particular Pass * Add license note to file --- .../scala/firrtl/benchmark/hot/PassBenchmark.scala | 32 ++++++++++++++++++++++ .../benchmark/hot/ResolveKindsBenchmark.scala | 23 ---------------- 2 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala delete mode 100644 benchmark/src/main/scala/firrtl/benchmark/hot/ResolveKindsBenchmark.scala 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)) -} -- cgit v1.2.3