diff options
author | Clement Courbet <courbet@google.com> | 2018-04-04 08:22:54 +0000 |
---|---|---|
committer | Clement Courbet <courbet@google.com> | 2018-04-04 08:22:54 +0000 |
commit | 7949b3b1dcbdbd815dd28122871761f742b08278 (patch) | |
tree | 1adcd98e14a5ef1947a83f250bff3b6eac0af7c0 /llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp | |
parent | 7287b2c1ec669791df8b1c704e2457338f6bee47 (diff) | |
download | bcm5719-llvm-7949b3b1dcbdbd815dd28122871761f742b08278.tar.gz bcm5719-llvm-7949b3b1dcbdbd815dd28122871761f742b08278.zip |
Revert r329156 "Add llvm-exegesis tool."
Breaks a bunch of bots.
llvm-svn: 329157
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp')
-rw-r--r-- | llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp b/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp deleted file mode 100644 index bdce72c1c11..00000000000 --- a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp +++ /dev/null @@ -1,79 +0,0 @@ -//===-- BenchmarkRunner.cpp -------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "BenchmarkRunner.h" -#include "InMemoryAssembler.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/ADT/Twine.h" -#include <string> - -namespace exegesis { - -BenchmarkRunner::InstructionFilter::~InstructionFilter() = default; - -BenchmarkRunner::~BenchmarkRunner() = default; - -InstructionBenchmark -BenchmarkRunner::run(const LLVMState &State, const unsigned Opcode, - unsigned NumRepetitions, - const InstructionFilter &Filter) const { - InstructionBenchmark InstrBenchmark; - - InstrBenchmark.AsmTmpl.Name = - llvm::Twine(getDisplayName()) - .concat(" ") - .concat(State.getInstrInfo().getName(Opcode)) - .str(); - InstrBenchmark.CpuName = State.getCpuName(); - InstrBenchmark.LLVMTriple = State.getTriple(); - InstrBenchmark.NumRepetitions = NumRepetitions; - - // Ignore instructions that we cannot run. - if (State.getInstrInfo().get(Opcode).isPseudo()) { - InstrBenchmark.Error = "Unsupported opcode: isPseudo"; - return InstrBenchmark; - } - if (llvm::Error E = Filter.shouldRun(State, Opcode)) { - InstrBenchmark.Error = llvm::toString(std::move(E)); - return InstrBenchmark; - } - - JitFunctionContext Context(State.createTargetMachine()); - auto ExpectedInstructions = - createCode(State, Opcode, NumRepetitions, Context); - if (llvm::Error E = ExpectedInstructions.takeError()) { - InstrBenchmark.Error = llvm::toString(std::move(E)); - return InstrBenchmark; - } - - const std::vector<llvm::MCInst> Instructions = *ExpectedInstructions; - const JitFunction Function(std::move(Context), Instructions); - const llvm::StringRef CodeBytes = Function.getFunctionBytes(); - - std::string AsmExcerpt; - constexpr const int ExcerptSize = 100; - constexpr const int ExcerptTailSize = 10; - if (CodeBytes.size() <= ExcerptSize) { - AsmExcerpt = llvm::toHex(CodeBytes); - } else { - AsmExcerpt = - llvm::toHex(CodeBytes.take_front(ExcerptSize - ExcerptTailSize + 3)); - AsmExcerpt += "..."; - AsmExcerpt += llvm::toHex(CodeBytes.take_back(ExcerptTailSize)); - } - llvm::outs() << "# Asm excerpt: " << AsmExcerpt << "\n"; - llvm::outs().flush(); // In case we crash. - - InstrBenchmark.Measurements = - runMeasurements(State, Function, NumRepetitions); - return InstrBenchmark; -} - -} // namespace exegesis |