brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 74a18da Raw
44 lines · c
1//===-- UopsBenchmarkRunner.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 uop decomposition.11///12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_TOOLS_LLVM_EXEGESIS_UOPSBENCHMARKRUNNER_H15#define LLVM_TOOLS_LLVM_EXEGESIS_UOPSBENCHMARKRUNNER_H16 17#include "BenchmarkRunner.h"18#include "Target.h"19 20namespace llvm {21namespace exegesis {22 23class UopsBenchmarkRunner : public BenchmarkRunner {24public:25  UopsBenchmarkRunner(const LLVMState &State,26                      BenchmarkPhaseSelectorE BenchmarkPhaseSelector,27                      ExecutionModeE ExecutionMode,28                      ArrayRef<ValidationEvent> ValCounters)29      : BenchmarkRunner(State, Benchmark::Uops, BenchmarkPhaseSelector,30                        ExecutionMode, ValCounters) {}31  ~UopsBenchmarkRunner() override;32 33  static constexpr size_t kMinNumDifferentAddresses = 6;34 35private:36  Expected<std::vector<BenchmarkMeasure>>37  runMeasurements(const FunctionExecutor &Executor) const override;38};39 40} // namespace exegesis41} // namespace llvm42 43#endif // LLVM_TOOLS_LLVM_EXEGESIS_UOPSBENCHMARKRUNNER_H44