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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H 10 #define LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H 11 12 #include "BenchmarkResult.h" 13 #include "llvm/MC/MCInst.h" 14 #include <string> 15 #include <vector> 16 17 namespace llvm { 18 namespace exegesis { 19 20 // A collection of instructions that are to be assembled, executed and measured. 21 struct BenchmarkCode { 22 InstructionBenchmarkKey Key; 23 24 // We also need to provide the registers that are live on entry for the 25 // assembler to generate proper prologue/epilogue. 26 std::vector<unsigned> LiveIns; 27 28 // Informations about how this configuration was built. 29 std::string Info; 30 }; 31 32 } // namespace exegesis 33 } // namespace llvm 34 35 #endif // LLVM_TOOLS_LLVM_EXEGESIS_BENCHMARKCODE_H 36