diff options
author | Clement Courbet <courbet@google.com> | 2018-06-19 10:54:12 +0000 |
---|---|---|
committer | Clement Courbet <courbet@google.com> | 2018-06-19 10:54:12 +0000 |
commit | 0dae1a0252bca450161d3ba8febbdf6750954f62 (patch) | |
tree | 4f3c1b68b2757bc55dbb58ef604c2ee9ced96407 /tools/llvm-exegesis | |
parent | 53ba989b547040507e1a1e237083ddaeec2aa343 (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.txt | 17 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/CMakeLists.txt | 5 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/Target.cpp | 36 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/Target.h | 41 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/Uops.cpp | 3 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/X86/CMakeLists.txt | 13 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/X86/LLVMBuild.txt | 22 | ||||
-rw-r--r-- | tools/llvm-exegesis/lib/X86/Target.cpp | 33 | ||||
-rw-r--r-- | tools/llvm-exegesis/llvm-exegesis.cpp | 7 |
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; |