summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-04-04 08:22:54 +0000
committerClement Courbet <courbet@google.com>2018-04-04 08:22:54 +0000
commit7949b3b1dcbdbd815dd28122871761f742b08278 (patch)
tree1adcd98e14a5ef1947a83f250bff3b6eac0af7c0 /llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
parent7287b2c1ec669791df8b1c704e2457338f6bee47 (diff)
downloadbcm5719-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.cpp79
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
OpenPOWER on IntegriCloud