36 lines · c
1//===-- BenchmarkCode.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#ifndef LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H10#define LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H11 12#include "BenchmarkResult.h"13#include "llvm/MC/MCInst.h"14#include <string>15#include <vector>16 17namespace llvm {18namespace exegesis {19 20// A collection of instructions that are to be assembled, executed and measured.21struct BenchmarkCode {22 BenchmarkKey Key;23 24 // We also need to provide the registers that are live on entry for the25 // assembler to generate proper prologue/epilogue.26 std::vector<MCRegister> LiveIns;27 28 // Informations about how this configuration was built.29 std::string Info;30};31 32} // namespace exegesis33} // namespace llvm34 35#endif // LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H36