123456789101112131415161718192021222324252627282930313233343536373839 |
- //===-- LatencyBenchmarkRunner.h --------------------------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- ///
- /// \file
- /// A BenchmarkRunner implementation to measure instruction latencies.
- ///
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H
- #define LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H
- #include "BenchmarkRunner.h"
- namespace llvm {
- namespace exegesis {
- class LatencyBenchmarkRunner : public BenchmarkRunner {
- public:
- LatencyBenchmarkRunner(
- const LLVMState &State, InstructionBenchmark::ModeE Mode,
- BenchmarkPhaseSelectorE BenchmarkPhaseSelector,
- InstructionBenchmark::ResultAggregationModeE ResultAggMode);
- ~LatencyBenchmarkRunner() override;
- private:
- Expected<std::vector<BenchmarkMeasure>>
- runMeasurements(const FunctionExecutor &Executor) const override;
- InstructionBenchmark::ResultAggregationModeE ResultAggMode;
- };
- } // namespace exegesis
- } // namespace llvm
- #endif // LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H
|