brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 6e21197 Raw
44 lines · c
1//===-- LatencyBenchmarkRunner.h --------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// A BenchmarkRunner implementation to measure instruction latencies.11///12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H15#define LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H16 17#include "BenchmarkRunner.h"18#include "Target.h"19 20namespace llvm {21namespace exegesis {22 23class LatencyBenchmarkRunner : public BenchmarkRunner {24public:25  LatencyBenchmarkRunner(const LLVMState &State, Benchmark::ModeE Mode,26                         BenchmarkPhaseSelectorE BenchmarkPhaseSelector,27                         Benchmark::ResultAggregationModeE ResultAggMode,28                         ExecutionModeE ExecutionMode,29                         ArrayRef<ValidationEvent> ValCounters,30                         unsigned BenchmarkRepeatCount);31  ~LatencyBenchmarkRunner() override;32 33private:34  Expected<std::vector<BenchmarkMeasure>>35  runMeasurements(const FunctionExecutor &Executor) const override;36 37  Benchmark::ResultAggregationModeE ResultAggMode;38  unsigned NumMeasurements;39};40} // namespace exegesis41} // namespace llvm42 43#endif // LLVM_TOOLS_LLVM_EXEGESIS_LATENCY_H44