aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-exegesis
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-06-19 10:54:12 +0000
committerClement Courbet <courbet@google.com>2018-06-19 10:54:12 +0000
commit0dae1a0252bca450161d3ba8febbdf6750954f62 (patch)
tree4f3c1b68b2757bc55dbb58ef604c2ee9ced96407 /tools/llvm-exegesis
parent53ba989b547040507e1a1e237083ddaeec2aa343 (diff)
Revert r335038 "[llvm-exegesis] A mechanism to add target-specific functionality."
Breaks buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335040 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-exegesis')
-rw-r--r--tools/llvm-exegesis/CMakeLists.txt17
-rw-r--r--tools/llvm-exegesis/lib/CMakeLists.txt5
-rw-r--r--tools/llvm-exegesis/lib/Target.cpp36
-rw-r--r--tools/llvm-exegesis/lib/Target.h41
-rw-r--r--tools/llvm-exegesis/lib/Uops.cpp3
-rw-r--r--tools/llvm-exegesis/lib/X86/CMakeLists.txt13
-rw-r--r--tools/llvm-exegesis/lib/X86/LLVMBuild.txt22
-rw-r--r--tools/llvm-exegesis/lib/X86/Target.cpp33
-rw-r--r--tools/llvm-exegesis/llvm-exegesis.cpp7
9 files changed, 3 insertions, 174 deletions
diff --git a/tools/llvm-exegesis/CMakeLists.txt b/tools/llvm-exegesis/CMakeLists.txt
index a8feaa71464..8ba8328e9d2 100644
--- a/tools/llvm-exegesis/CMakeLists.txt
+++ b/tools/llvm-exegesis/CMakeLists.txt
@@ -1,4 +1,3 @@
-
set(LLVM_LINK_COMPONENTS
Support
native
@@ -9,18 +8,4 @@ add_llvm_tool(llvm-exegesis
)
add_subdirectory(lib)
-
-# Link the native exegesis target if compiled and on the right host.
-if ((LLVM_TARGETS_TO_BUILD MATCHES "X86") AND ("${LLVM_NATIVE_ARCH}" STREQUAL "X86"))
- set(LLVM_NATIVE_ARCH "X86")
-endif()
-
-if (LLVM_NATIVE_ARCH)
- set(LLVM_EXEGESIS_NATIVE_TARGET "LLVMExegesis${LLVM_NATIVE_ARCH}")
- set_source_files_properties(llvm-exegesis.cpp PROPERTIES COMPILE_FLAGS "-DLLVM_EXEGESIS_INITIALIZE_NATIVE_TARGET=Initialize${LLVM_NATIVE_ARCH}ExegesisTarget")
-endif()
-
-target_link_libraries(llvm-exegesis PRIVATE
- LLVMExegesis
- ${LLVM_EXEGESIS_NATIVE_TARGET}
- )
+target_link_libraries(llvm-exegesis PRIVATE LLVMExegesis)
diff --git a/tools/llvm-exegesis/lib/CMakeLists.txt b/tools/llvm-exegesis/lib/CMakeLists.txt
index 96c6c91ece8..10cf16af95e 100644
--- a/tools/llvm-exegesis/lib/CMakeLists.txt
+++ b/tools/llvm-exegesis/lib/CMakeLists.txt
@@ -1,7 +1,3 @@
-if (LLVM_TARGETS_TO_BUILD MATCHES "X86")
- add_subdirectory(X86)
-endif()
-
add_library(LLVMExegesis
STATIC
Analysis.cpp
@@ -14,7 +10,6 @@ add_library(LLVMExegesis
MCInstrDescView.cpp
PerfHelper.cpp
RegisterAliasing.cpp
- Target.cpp
Uops.cpp
X86.cpp
)
diff --git a/tools/llvm-exegesis/lib/Target.cpp b/tools/llvm-exegesis/lib/Target.cpp
deleted file mode 100644
index 1b11f93e353..00000000000
--- a/tools/llvm-exegesis/lib/Target.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===-- Target.cpp ----------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-#include "Target.h"
-
-namespace exegesis {
-
-ExegesisTarget::~ExegesisTarget() {} // anchor.
-
-static ExegesisTarget* FirstTarget = nullptr;
-
-const ExegesisTarget* ExegesisTarget::lookup(llvm::StringRef TT) {
- const llvm::Triple::ArchType Arch = llvm::Triple(TT).getArch();
- for (const ExegesisTarget* T = FirstTarget; T != nullptr; T = T->Next) {
- if (T->matchesArch(Arch)) return T;
- }
- return nullptr;
-}
-
-void ExegesisTarget::registerTarget(ExegesisTarget *Target){
- if (FirstTarget == nullptr) {
- FirstTarget = Target;
- return;
- }
- assert(Target->Next == nullptr && "target has already been registered");
- if (Target->Next != nullptr)
- return;
- Target->Next = FirstTarget;
- FirstTarget = Target;
-}
-} // namespace exegesis
diff --git a/tools/llvm-exegesis/lib/Target.h b/tools/llvm-exegesis/lib/Target.h
deleted file mode 100644
index 3db495276b4..00000000000
--- a/tools/llvm-exegesis/lib/Target.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- Target.h ------------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-///
-/// Classes that handle the creation of target-specific objects. This is
-/// similar to llvm::Target/TargetRegistry.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_EXEGESIS_TARGET_H
-#define LLVM_TOOLS_LLVM_EXEGESIS_TARGET_H
-
-#include "llvm/ADT/Triple.h"
-
-namespace exegesis {
-
-class ExegesisTarget {
-public:
- // Returns the ExegesisTarget for the given triple or nullptr if the target
- // does not exist.
- static const ExegesisTarget* lookup(llvm::StringRef TT);
- // Registers a target. Not thread safe.
- static void registerTarget(ExegesisTarget *T);
-
- ~ExegesisTarget();
-
-private:
- virtual bool matchesArch(llvm::Triple::ArchType Arch) const = 0;
- const ExegesisTarget* Next = nullptr;
-};
-
-} // namespace exegesis
-
-#endif // LLVM_TOOLS_LLVM_EXEGESIS_TARGET_H
diff --git a/tools/llvm-exegesis/lib/Uops.cpp b/tools/llvm-exegesis/lib/Uops.cpp
index 581b855cadf..4c6edaad32a 100644
--- a/tools/llvm-exegesis/lib/Uops.cpp
+++ b/tools/llvm-exegesis/lib/Uops.cpp
@@ -97,7 +97,8 @@ UopsBenchmarkRunner::isInfeasible(const llvm::MCInstrDesc &MCInstrDesc) const {
return llvm::make_error<BenchmarkFailure>(
"Infeasible : has unknown operands");
if (llvm::any_of(MCInstrDesc.operands(), hasMemoryOperand))
- return llvm::make_error<BenchmarkFailure>("Infeasible : has memory operands");
+ return llvm::make_error<BenchmarkFailure>(
+ "Infeasible : has memory operands");
return llvm::Error::success();
}
diff --git a/tools/llvm-exegesis/lib/X86/CMakeLists.txt b/tools/llvm-exegesis/lib/X86/CMakeLists.txt
deleted file mode 100644
index 28dcff50ed7..00000000000
--- a/tools/llvm-exegesis/lib/X86/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-add_library(LLVMExegesisX86
- STATIC
- Target.cpp
- )
-
-llvm_update_compile_flags(LLVMExegesisX86)
-llvm_map_components_to_libnames(libs
- X86
- Exegesis
- )
-
-target_link_libraries(LLVMExegesisX86 ${libs})
-set_target_properties(LLVMExegesisX86 PROPERTIES FOLDER "Libraries")
diff --git a/tools/llvm-exegesis/lib/X86/LLVMBuild.txt b/tools/llvm-exegesis/lib/X86/LLVMBuild.txt
deleted file mode 100644
index 2a7ddca81e7..00000000000
--- a/tools/llvm-exegesis/lib/X86/LLVMBuild.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-;===- ./tools/llvm-exegesis/lib/X86LLVMBuild.txt ---------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = ExegesisX86
-parent = Libraries
-required_libraries = X86
diff --git a/tools/llvm-exegesis/lib/X86/Target.cpp b/tools/llvm-exegesis/lib/X86/Target.cpp
deleted file mode 100644
index a37387bf5e7..00000000000
--- a/tools/llvm-exegesis/lib/X86/Target.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//===-- Target.cpp ----------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-#include "../Target.h"
-
-namespace exegesis {
-
-namespace {
-
-class ExegesisX86Target : public ExegesisTarget {
-private:
- bool matchesArch(llvm::Triple::ArchType Arch) const override {
- return Arch == llvm::Triple::x86_64 || Arch == llvm::Triple::x86;
- }
-};
-
-} // namespace
-
-static ExegesisTarget* getTheExegesisX86Target() {
- static ExegesisX86Target Target;
- return &Target;
-}
-
-void InitializeX86ExegesisTarget() {
- ExegesisTarget::registerTarget(getTheExegesisX86Target());
-}
-
-} // namespace exegesis
diff --git a/tools/llvm-exegesis/llvm-exegesis.cpp b/tools/llvm-exegesis/llvm-exegesis.cpp
index 2ac92965a96..7e2caf3198e 100644
--- a/tools/llvm-exegesis/llvm-exegesis.cpp
+++ b/tools/llvm-exegesis/llvm-exegesis.cpp
@@ -86,10 +86,6 @@ namespace exegesis {
static llvm::ExitOnError ExitOnErr;
-#ifdef LLVM_EXEGESIS_INITIALIZE_NATIVE_TARGET
-void LLVM_EXEGESIS_INITIALIZE_NATIVE_TARGET();
-#endif
-
static unsigned GetOpcodeOrDie(const llvm::MCInstrInfo &MCInstrInfo) {
if (OpcodeName.empty() && (OpcodeIndex == 0))
llvm::report_fatal_error(
@@ -124,9 +120,6 @@ void benchmarkMain() {
llvm::InitializeNativeTarget();
llvm::InitializeNativeTargetAsmPrinter();
-#ifdef LLVM_EXEGESIS_INITIALIZE_NATIVE_TARGET
- LLVM_EXEGESIS_INITIALIZE_NATIVE_TARGET();
-#endif
// FIXME: Target-specific filter.
X86Filter Filter;