[llvm-commits] [llvm] r77060 - in /llvm/trunk: include/llvm/Target/ lib/ExecutionEngine/JIT/ lib/Support/ lib/Target/ARM/TargetInfo/ lib/Target/Alpha/TargetInfo/ lib/Target/CBackend/TargetInfo/ lib/Target/CellSPU/TargetInfo/ lib/Target/CppBackend/TargetInfo/ lib/Target/MSIL/TargetInfo/ lib/Target/MSP430/TargetInfo/ lib/Target/Mips/TargetInfo/ lib/Target/PIC16/TargetInfo/ lib/Target/PowerPC/TargetInfo/ lib/Target/Sparc/TargetInfo/ lib/Target/SystemZ/TargetInfo/ lib/Target/X86/TargetInfo/ lib/Target/XCore/TargetInfo/

Daniel Dunbar daniel at zuster.org
Sat Jul 25 03:10:17 PDT 2009


Author: ddunbar
Date: Sat Jul 25 05:09:50 2009
New Revision: 77060

URL: http://llvm.org/viewvc/llvm-project?rev=77060&view=rev
Log:
Simplify JIT target selection.
 - Instead of requiring targets to define a JIT quality match function, we just
   have them specify if they support a JIT.

 - Target selection for the JIT just gets the host triple and looks for the best
   target which matches the triple and has a JIT.

Modified:
    llvm/trunk/include/llvm/Target/TargetRegistry.h
    llvm/trunk/lib/ExecutionEngine/JIT/TargetSelect.cpp
    llvm/trunk/lib/Support/TargetRegistry.cpp
    llvm/trunk/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
    llvm/trunk/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
    llvm/trunk/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp
    llvm/trunk/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
    llvm/trunk/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp
    llvm/trunk/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp
    llvm/trunk/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
    llvm/trunk/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
    llvm/trunk/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp
    llvm/trunk/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
    llvm/trunk/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
    llvm/trunk/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
    llvm/trunk/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
    llvm/trunk/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp

Modified: llvm/trunk/include/llvm/Target/TargetRegistry.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetRegistry.h?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Target/TargetRegistry.h (original)
+++ llvm/trunk/include/llvm/Target/TargetRegistry.h Sat Jul 25 05:09:50 2009
@@ -68,16 +68,15 @@
     /// of a module.
     ModuleMatchQualityFnTy ModuleMatchQualityFn;
 
-    /// JITMatchQualityFn - The target function for rating the match quality
-    /// with the host.
-    JITMatchQualityFnTy JITMatchQualityFn;
-
     /// Name - The target name.
     const char *Name;
 
     /// ShortDesc - A short description of the target.
     const char *ShortDesc;
 
+    /// HasJIT - Whether this target supports the JIT.
+    bool HasJIT;
+
     /// TargetMachineCtorFn - Construction function for this target's
     /// TargetMachine, if registered.
     TargetMachineCtorTy TargetMachineCtorFn;
@@ -100,9 +99,7 @@
     /// getShortDescription - Get a short description of the target.
     const char *getShortDescription() const { return ShortDesc; }
 
-    /// getJITMatchQuality - Get the quality of this targets match for use as a
-    /// JIT.
-    unsigned getJITMatchQuality() const { return JITMatchQualityFn(); }
+    bool hasJIT() const { return HasJIT; }
 
     /// hasTargetMachine - Check if this target supports code generation.
     bool hasTargetMachine() const { return TargetMachineCtorFn != 0; }
@@ -224,14 +221,14 @@
     /// this target.
     /// @param MQualityFn - The module match quality computation function for
     /// this target.
-    /// @param JITMatchQualityFn - The JIT match quality computation function
-    /// for this target.
+    /// @param HasJIT - Whether the target supports JIT code
+    /// generation.
     static void RegisterTarget(Target &T,
                                const char *Name,
                                const char *ShortDesc,
                                Target::TripleMatchQualityFnTy TQualityFn,
                                Target::ModuleMatchQualityFnTy MQualityFn,
-                               Target::JITMatchQualityFnTy JITQualityFn);
+                               bool HasJIT = false);
                                
     /// RegisterTargetMachine - Register a TargetMachine implementation for the
     /// given target.
@@ -292,6 +289,8 @@
   ///
   /// namespace {
   ///   struct FooInfo {
+  ///     static const bool HasJIT = ...;
+  ///
   ///     static unsigned getJITMatchQuality() { ... }
   ///     static unsigned getTripleMatchQuality(const std::string &) { ... }
   ///     static unsigned getModuleMatchQuality(const Module &) { ... }
@@ -307,7 +306,7 @@
       TargetRegistry::RegisterTarget(T, Name, Desc,
                                      &TargetInfoImpl::getTripleMatchQuality,
                                      &TargetInfoImpl::getModuleMatchQuality,
-                                     &TargetInfoImpl::getJITMatchQuality);
+                                     TargetInfoImpl::HasJIT);
     }
   };
 

Modified: llvm/trunk/lib/ExecutionEngine/JIT/TargetSelect.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/JIT/TargetSelect.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/ExecutionEngine/JIT/TargetSelect.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/JIT/TargetSelect.cpp Sat Jul 25 05:09:50 2009
@@ -65,7 +65,7 @@
       return 0;
     }        
 
-    if (TheTarget->getJITMatchQuality() == 0) {
+    if (!TheTarget->hasJIT()) {
       cerr << "WARNING: This target JIT is not designed for the host you are"
            << " running.  If bad things happen, please choose a different "
            << "-march switch.\n";

Modified: llvm/trunk/lib/Support/TargetRegistry.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/TargetRegistry.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Support/TargetRegistry.cpp (original)
+++ llvm/trunk/lib/Support/TargetRegistry.cpp Sat Jul 25 05:09:50 2009
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Target/TargetRegistry.h"
+#include "llvm/System/Host.h"
 #include <cassert>
 using namespace llvm;
 
@@ -77,9 +78,18 @@
     }
   }
 
+  // FIXME: This is a hack to ignore super weak matches like msil, etc. and look
+  // by host instead. They will be found again via the triple.
+  if (Best && BestQuality == 1)    
+    Best = EquallyBest = 0;
+
+  // If that failed, try looking up the host triple.
+  if (!Best)
+    Best = getClosestStaticTargetForTriple(sys::getHostTriple(), Error);
+
   if (!Best) {
     Error = "No available targets are compatible with this module";
-    return 0;
+    return Best;
   }
 
   // Otherwise, take the best target, but make sure we don't have two equally
@@ -95,6 +105,8 @@
 
 const Target *
 TargetRegistry::getClosestTargetForJIT(std::string &Error) {
+  std::string Triple = sys::getHostTriple();
+
   // Provide special warning when no targets are initialized.
   if (begin() == end()) {
     Error = "No JIT is available for this host (no targets are registered)";
@@ -104,7 +116,10 @@
   const Target *Best = 0, *EquallyBest = 0;
   unsigned BestQuality = 0;
   for (iterator it = begin(), ie = end(); it != ie; ++it) {
-    if (unsigned Qual = it->JITMatchQualityFn()) {
+    if (!it->hasJIT())
+      continue;
+
+    if (unsigned Qual = it->TripleMatchQualityFn(Triple)) {
       if (!Best || Qual > BestQuality) {
         Best = &*it;
         EquallyBest = 0;
@@ -128,8 +143,8 @@
                                     const char *ShortDesc,
                                     Target::TripleMatchQualityFnTy TQualityFn,
                                     Target::ModuleMatchQualityFnTy MQualityFn,
-                                    Target::JITMatchQualityFnTy JITQualityFn) {
-  assert(Name && ShortDesc && TQualityFn && MQualityFn && JITQualityFn &&
+                                    bool HasJIT) {
+  assert(Name && ShortDesc && TQualityFn && MQualityFn &&
          "Missing required target information!");
 
   // Check if this target has already been initialized, we allow this as a
@@ -145,6 +160,6 @@
   T.ShortDesc = ShortDesc;
   T.TripleMatchQualityFn = TQualityFn;
   T.ModuleMatchQualityFn = MQualityFn;
-  T.JITMatchQualityFn = JITQualityFn;
+  T.HasJIT = HasJIT;
 }
 

Modified: llvm/trunk/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,13 +14,6 @@
 
 Target llvm::TheARMTarget;
 
-static unsigned ARM_JITMatchQuality() {
-#if defined(__arm__)
-  return 10;
-#endif
-  return 0;
-}
-
 static unsigned ARM_TripleMatchQuality(const std::string &TT) {
   // Match arm-foo-bar, as well as things like armv5blah-*
   if (TT.size() >= 4 &&
@@ -45,18 +38,11 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
 
-  return ARM_JITMatchQuality()/2;
+  return 0;
 }
 
 Target llvm::TheThumbTarget;
 
-static unsigned Thumb_JITMatchQuality() {
-#if defined(__thumb__)
-  return 10;
-#endif
-  return 0;
-}
-
 static unsigned Thumb_TripleMatchQuality(const std::string &TT) {
   // Match thumb-foo-bar, as well as things like thumbv5blah-*
   if (TT.size() >= 6 &&
@@ -81,7 +67,7 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
 
-  return Thumb_JITMatchQuality()/2;
+  return 0;
 }
 
 extern "C" void LLVMInitializeARMTargetInfo() { 
@@ -89,11 +75,11 @@
                                   "ARM",
                                   &ARM_TripleMatchQuality,
                                   &ARM_ModuleMatchQuality,
-                                  &ARM_JITMatchQuality);
+                                 /*HasJIT=*/true);
 
   TargetRegistry::RegisterTarget(TheThumbTarget, "thumb",    
                                   "Thumb",
                                   &Thumb_TripleMatchQuality,
                                   &Thumb_ModuleMatchQuality,
-                                  &Thumb_JITMatchQuality);
+                                 /*HasJIT=*/true);
 }

Modified: llvm/trunk/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,14 +14,6 @@
 
 llvm::Target llvm::TheAlphaTarget;
 
-static unsigned Alpha_JITMatchQuality() {
-#ifdef __alpha
-  return 10;
-#else
-  return 0;
-#endif
-}
-
 static unsigned Alpha_TripleMatchQuality(const std::string &TT) {
   // We strongly match "alpha*".
   if (TT.size() >= 5 && TT[0] == 'a' && TT[1] == 'l' && TT[2] == 'p' &&
@@ -46,7 +38,7 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
 
-  return Alpha_JITMatchQuality()/2;
+  return 0;
 }
 
 extern "C" void LLVMInitializeAlphaTargetInfo() { 
@@ -54,5 +46,5 @@
                                   "Alpha [experimental]",
                                   &Alpha_TripleMatchQuality,
                                   &Alpha_ModuleMatchQuality,
-                                  &Alpha_JITMatchQuality);
+                                  /*HasJIT=*/true);
 }

Modified: llvm/trunk/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheCBackendTarget;
 
-static unsigned CBackend_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned CBackend_TripleMatchQuality(const std::string &TT) {
   // This class always works, but must be requested explicitly on 
   // llc command line.
@@ -34,6 +30,5 @@
   TargetRegistry::RegisterTarget(TheCBackendTarget, "c",
                                   "C backend",
                                   &CBackend_TripleMatchQuality,
-                                  &CBackend_ModuleMatchQuality,
-                                  &CBackend_JITMatchQuality);
+                                  &CBackend_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheCellSPUTarget;
 
-static unsigned CellSPU_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned CellSPU_TripleMatchQuality(const std::string &TT) {
   // We strongly match "spu-*" or "cellspu-*".
   if ((TT.size() == 3 && std::string(TT.begin(), TT.begin()+3) == "spu") ||
@@ -44,6 +40,5 @@
   TargetRegistry::RegisterTarget(TheCellSPUTarget, "cellspu",
                                   "STI CBEA Cell SPU [experimental]",
                                   &CellSPU_TripleMatchQuality,
-                                  &CellSPU_ModuleMatchQuality,
-                                  &CellSPU_JITMatchQuality);
+                                  &CellSPU_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheCppBackendTarget;
 
-static unsigned CppBackend_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned CppBackend_TripleMatchQuality(const std::string &TT) {
   // This class always works, but shouldn't be the default in most cases.
   return 1;
@@ -32,6 +28,5 @@
   TargetRegistry::RegisterTarget(TheCppBackendTarget, "cpp",    
                                   "C++ backend",
                                   &CppBackend_TripleMatchQuality,
-                                  &CppBackend_ModuleMatchQuality,
-                                  &CppBackend_JITMatchQuality);
+                                  &CppBackend_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheMSILTarget;
 
-static unsigned MSIL_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned MSIL_TripleMatchQuality(const std::string &TT) {
   // This class always works, but shouldn't be the default in most cases.
   return 1;
@@ -32,6 +28,5 @@
   TargetRegistry::RegisterTarget(TheMSILTarget, "msil",    
                                   "MSIL backend",
                                   &MSIL_TripleMatchQuality,
-                                  &MSIL_ModuleMatchQuality,
-                                  &MSIL_JITMatchQuality);
+                                  &MSIL_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheMSP430Target;
 
-static unsigned MSP430_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned MSP430_TripleMatchQuality(const std::string &TT) {
   // We strongly match msp430
   if (TT.size() >= 6 && TT[0] == 'm' && TT[1] == 's' && TT[2] == 'p' &&
@@ -42,6 +38,5 @@
   TargetRegistry::RegisterTarget(TheMSP430Target, "msp430",    
                                   "MSP430 [experimental]",
                                   &MSP430_TripleMatchQuality,
-                                  &MSP430_ModuleMatchQuality,
-                                  &MSP430_JITMatchQuality);
+                                  &MSP430_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheMipsTarget;
 
-static unsigned Mips_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned Mips_TripleMatchQuality(const std::string &TT) {
   // We strongly match "mips*-*".
   if (TT.size() >= 5 && std::string(TT.begin(), TT.begin()+5) == "mips-")
@@ -43,10 +39,6 @@
 
 Target llvm::TheMipselTarget;
 
-static unsigned Mipsel_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned Mipsel_TripleMatchQuality(const std::string &TT) {
   // We strongly match "mips*el-*".
   if (TT.size() >= 7 && std::string(TT.begin(), TT.begin()+7) == "mipsel-")
@@ -77,12 +69,10 @@
   TargetRegistry::RegisterTarget(TheMipsTarget, "mips",
                                   "Mips",
                                   &Mips_TripleMatchQuality,
-                                  &Mips_ModuleMatchQuality,
-                                  &Mips_JITMatchQuality);
+                                  &Mips_ModuleMatchQuality);
 
   TargetRegistry::RegisterTarget(TheMipselTarget, "mipsel",
                                   "Mipsel",
                                   &Mipsel_TripleMatchQuality,
-                                  &Mipsel_ModuleMatchQuality,
-                                  &Mipsel_JITMatchQuality);
+                                  &Mipsel_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::ThePIC16Target;
 
-static unsigned PIC16_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned PIC16_TripleMatchQuality(const std::string &TT) {
   return 0;
 }
@@ -28,10 +24,6 @@
 
 Target llvm::TheCooperTarget;
 
-static unsigned Cooper_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned Cooper_TripleMatchQuality(const std::string &TT) {
   return 0;
 }
@@ -44,12 +36,10 @@
   TargetRegistry::RegisterTarget(ThePIC16Target, "pic16",
                                   "PIC16 14-bit [experimental]",
                                   &PIC16_TripleMatchQuality,
-                                  &PIC16_ModuleMatchQuality,
-                                  &PIC16_JITMatchQuality);
+                                  &PIC16_ModuleMatchQuality);
 
   TargetRegistry::RegisterTarget(TheCooperTarget, "cooper",    
                                   "PIC16 Cooper [experimental]",
                                   &Cooper_TripleMatchQuality,
-                                  &Cooper_ModuleMatchQuality,
-                                  &Cooper_JITMatchQuality);
+                                  &Cooper_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,14 +14,6 @@
 
 Target llvm::ThePPC32Target;
 
-static unsigned PPC32_JITMatchQuality() {
-#if defined(__POWERPC__) || defined (__ppc__) || defined(_POWER) || defined(__PPC__)
-  if (sizeof(void*) == 4)
-    return 10;
-#endif
-  return 0;
-}
-
 static unsigned PPC32_TripleMatchQuality(const std::string &TT) {
   // We strongly match "powerpc-*".
   if (TT.size() >= 8 && std::string(TT.begin(), TT.begin()+8) == "powerpc-")
@@ -45,19 +37,11 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
   
-  return PPC32_JITMatchQuality()/2;
+  return 0;
 }
 
 Target llvm::ThePPC64Target;
 
-static unsigned PPC64_JITMatchQuality() {
-#if defined(__POWERPC__) || defined (__ppc__) || defined(_POWER) || defined(__PPC__)
-  if (sizeof(void*) == 8)
-    return 10;
-#endif
-  return 0;
-}
-
 static unsigned PPC64_TripleMatchQuality(const std::string &TT) {
   // We strongly match "powerpc64-*".
   if (TT.size() >= 10 && std::string(TT.begin(), TT.begin()+10) == "powerpc64-")
@@ -81,7 +65,7 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
   
-  return PPC64_JITMatchQuality()/2;
+  return 0;
 }
 
 extern "C" void LLVMInitializePowerPCTargetInfo() { 
@@ -89,11 +73,11 @@
                                   "PowerPC 32",
                                   &PPC32_TripleMatchQuality,
                                   &PPC32_ModuleMatchQuality,
-                                  &PPC32_JITMatchQuality);
+                                 /*HasJIT=*/true);
 
   TargetRegistry::RegisterTarget(ThePPC64Target, "ppc64",
                                   "PowerPC 64",
                                   &PPC64_TripleMatchQuality,
                                   &PPC64_ModuleMatchQuality,
-                                  &PPC64_JITMatchQuality);
+                                 /*HasJIT=*/true);
 }

Modified: llvm/trunk/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheSparcTarget;
 
-static unsigned Sparc_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned Sparc_TripleMatchQuality(const std::string &TT) {
   if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "sparc-")
     return 20;
@@ -57,6 +53,5 @@
   TargetRegistry::RegisterTarget(TheSparcTarget, "sparc",
                                   "Sparc",
                                   &Sparc_TripleMatchQuality,
-                                  &Sparc_ModuleMatchQuality,
-                                  &Sparc_JITMatchQuality);
+                                  &Sparc_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -1,4 +1,4 @@
-//===-- SystemZTargetInfo.cpp - SystemZ Target Implementation -----------------===//
+//===-- SystemZTargetInfo.cpp - SystemZ Target Implementation -------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -14,10 +14,6 @@
 
 Target llvm::TheSystemZTarget;
 
-static unsigned SystemZ_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned SystemZ_TripleMatchQuality(const std::string &TT) {
   // We strongly match s390x
   if (TT.size() >= 5 && TT[0] == 's' && TT[1] == '3' && TT[2] == '9' &&
@@ -40,6 +36,5 @@
   TargetRegistry::RegisterTarget(TheSystemZTarget, "systemz",
                                  "SystemZ",
                                  &SystemZ_TripleMatchQuality,
-                                 &SystemZ_ModuleMatchQuality,
-                                 &SystemZ_JITMatchQuality);
+                                 &SystemZ_ModuleMatchQuality);
 }

Modified: llvm/trunk/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/TargetInfo/X86TargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/TargetInfo/X86TargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/TargetInfo/X86TargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,13 +14,6 @@
 
 Target llvm::TheX86_32Target;
 
-static unsigned X86_32_JITMatchQuality() {
-#if defined(i386) || defined(__i386__) || defined(__x86__) || defined(_M_IX86)
-  return 10;
-#endif
-  return 0;
-}
-
 static unsigned X86_32_TripleMatchQuality(const std::string &TT) {
   // We strongly match "i[3-9]86-*".
   if (TT.size() >= 5 && TT[0] == 'i' && TT[2] == '8' && TT[3] == '6' &&
@@ -45,18 +38,11 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
 
-  return X86_32_JITMatchQuality()/2;
+  return 0;
 }
 
 Target llvm::TheX86_64Target;
 
-static unsigned X86_64_JITMatchQuality() {
-#if defined(__x86_64__) || defined(_M_AMD64)
-  return 10;
-#endif
-  return 0;
-}
-
 static unsigned X86_64_TripleMatchQuality(const std::string &TT) {
   // We strongly match "x86_64-*".
   if (TT.size() >= 7 && TT[0] == 'x' && TT[1] == '8' && TT[2] == '6' &&
@@ -81,7 +67,7 @@
            M.getPointerSize() != Module::AnyPointerSize)
     return 0;                                    // Match for some other target
 
-  return X86_64_JITMatchQuality()/2;
+  return 0;
 }
 
 extern "C" void LLVMInitializeX86TargetInfo() { 
@@ -89,11 +75,11 @@
                                   "32-bit X86: Pentium-Pro and above",
                                   &X86_32_TripleMatchQuality,
                                   &X86_32_ModuleMatchQuality,
-                                  &X86_32_JITMatchQuality);
+                                  /*HasJIT=*/true);
 
   TargetRegistry::RegisterTarget(TheX86_64Target, "x86-64",    
                                   "64-bit X86: EM64T and AMD64",
                                   &X86_64_TripleMatchQuality,
                                   &X86_64_ModuleMatchQuality,
-                                  &X86_64_JITMatchQuality);
+                                  /*HasJIT=*/true);
 }

Modified: llvm/trunk/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp?rev=77060&r1=77059&r2=77060&view=diff

==============================================================================
--- llvm/trunk/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp Sat Jul 25 05:09:50 2009
@@ -14,10 +14,6 @@
 
 Target llvm::TheXCoreTarget;
 
-static unsigned XCore_JITMatchQuality() {
-  return 0;
-}
-
 static unsigned XCore_TripleMatchQuality(const std::string &TT) {
   if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "xcore-")
     return 20;
@@ -38,6 +34,5 @@
   TargetRegistry::RegisterTarget(TheXCoreTarget, "xcore",
                                   "XCore",
                                   &XCore_TripleMatchQuality,
-                                  &XCore_ModuleMatchQuality,
-                                  &XCore_JITMatchQuality);
+                                  &XCore_ModuleMatchQuality);
 }





More information about the llvm-commits mailing list