diff options
author | Chris Lattner <sabre@nondot.org> | 2007-07-09 17:25:29 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-07-09 17:25:29 +0000 |
commit | 87bdba6d6a1684373c94df0363a3b620de6dab6c (patch) | |
tree | cd7dc95b8104d684c9beb8a7e9e34111aa5baf0d | |
parent | 0f9d599dc96c61345a3e07642baaa5cffb061600 (diff) |
The various "getModuleMatchQuality" implementations should return
zero if they see a target triple they don't understand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38463 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 5 | ||||
-rw-r--r-- | lib/Target/Alpha/AlphaTargetMachine.cpp | 2 | ||||
-rw-r--r-- | lib/Target/IA64/IA64TargetMachine.cpp | 2 | ||||
-rw-r--r-- | lib/Target/Mips/MipsTargetMachine.cpp | 7 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCTargetMachine.cpp | 3 | ||||
-rw-r--r-- | lib/Target/Sparc/SparcTargetMachine.cpp | 3 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetMachine.cpp | 5 |
7 files changed, 24 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 9c86e7b665..58b3ab98ad 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -48,6 +48,9 @@ unsigned ThumbTargetMachine::getModuleMatchQuality(const Module &M) { if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "thumb-") return 20; + // If the target triple is something non-thumb, we don't match. + if (!TT.empty()) return 0; + if (M.getEndianness() == Module::LittleEndian && M.getPointerSize() == Module::Pointer32) return 10; // Weak match @@ -94,6 +97,8 @@ unsigned ARMTargetMachine::getModuleMatchQuality(const Module &M) { std::string TT = M.getTargetTriple(); if (TT.size() >= 4 && std::string(TT.begin(), TT.begin()+4) == "arm-") return 20; + // If the target triple is something non-arm, we don't match. + if (!TT.empty()) return 0; if (M.getEndianness() == Module::LittleEndian && M.getPointerSize() == Module::Pointer32) diff --git a/lib/Target/Alpha/AlphaTargetMachine.cpp b/lib/Target/Alpha/AlphaTargetMachine.cpp index bf7f22145f..d4137a5a71 100644 --- a/lib/Target/Alpha/AlphaTargetMachine.cpp +++ b/lib/Target/Alpha/AlphaTargetMachine.cpp @@ -35,6 +35,8 @@ unsigned AlphaTargetMachine::getModuleMatchQuality(const Module &M) { if (TT.size() >= 5 && TT[0] == 'a' && TT[1] == 'l' && TT[2] == 'p' && TT[3] == 'h' && TT[4] == 'a') return 20; + // If the target triple is something non-alpha, we don't match. + if (!TT.empty()) return 0; if (M.getEndianness() == Module::LittleEndian && M.getPointerSize() == Module::Pointer64) diff --git a/lib/Target/IA64/IA64TargetMachine.cpp b/lib/Target/IA64/IA64TargetMachine.cpp index d65ad3c4e1..51beaa1ebe 100644 --- a/lib/Target/IA64/IA64TargetMachine.cpp +++ b/lib/Target/IA64/IA64TargetMachine.cpp @@ -50,6 +50,8 @@ unsigned IA64TargetMachine::getModuleMatchQuality(const Module &M) { if (seenIA64) return 20; // strong match } + // If the target triple is something non-ia64, we don't match. + if (!TT.empty()) return 0; #if defined(__ia64__) || defined(__IA64__) return 5; diff --git a/lib/Target/Mips/MipsTargetMachine.cpp b/lib/Target/Mips/MipsTargetMachine.cpp index de30284e01..a85833ebc0 100644 --- a/lib/Target/Mips/MipsTargetMachine.cpp +++ b/lib/Target/Mips/MipsTargetMachine.cpp @@ -40,13 +40,14 @@ MipsTargetMachine(const Module &M, const std::string &FS): // return 0 and must specify -march to gen MIPS code. unsigned MipsTargetMachine:: -getModuleMatchQuality(const Module &M) -{ +getModuleMatchQuality(const Module &M) { // We strongly match "mips-*". std::string TT = M.getTargetTriple(); if (TT.size() >= 5 && std::string(TT.begin(), TT.begin()+5) == "mips-") return 20; - + // If the target triple is something non-mips, we don't match. + if (!TT.empty()) return 0; + return 0; } diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp index acb6191f9e..57c84370f3 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -55,6 +55,9 @@ unsigned PPC32TargetMachine::getModuleMatchQuality(const Module &M) { if (TT.size() >= 8 && std::string(TT.begin(), TT.begin()+8) == "powerpc-") return 20; + // If the target triple is something non-powerpc, we don't match. + if (!TT.empty()) return 0; + if (M.getEndianness() == Module::BigEndian && M.getPointerSize() == Module::Pointer32) return 10; // Weak match diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp index ac43736da0..b67c3009cf 100644 --- a/lib/Target/Sparc/SparcTargetMachine.cpp +++ b/lib/Target/Sparc/SparcTargetMachine.cpp @@ -39,6 +39,9 @@ unsigned SparcTargetMachine::getModuleMatchQuality(const Module &M) { std::string TT = M.getTargetTriple(); if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "sparc-") return 20; + + // If the target triple is something non-sparc, we don't match. + if (!TT.empty()) return 0; if (M.getEndianness() == Module::BigEndian && M.getPointerSize() == Module::Pointer32) diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp index 46e59ac035..4d4bd3feb4 100644 --- a/lib/Target/X86/X86TargetMachine.cpp +++ b/lib/Target/X86/X86TargetMachine.cpp @@ -62,6 +62,8 @@ unsigned X86_32TargetMachine::getModuleMatchQuality(const Module &M) { if (TT.size() >= 5 && TT[0] == 'i' && TT[2] == '8' && TT[3] == '6' && TT[4] == '-' && TT[1] - '3' < 6) return 20; + // If the target triple is something non-X86, we don't match. + if (!TT.empty()) return 0; if (M.getEndianness() == Module::LittleEndian && M.getPointerSize() == Module::Pointer32) @@ -85,6 +87,9 @@ unsigned X86_64TargetMachine::getModuleMatchQuality(const Module &M) { TT[3] == '6' && TT[4] == '4' && TT[5] == '-') return 20; + // If the target triple is something non-X86-64, we don't match. + if (!TT.empty()) return 0; + if (M.getEndianness() == Module::LittleEndian && M.getPointerSize() == Module::Pointer64) return 10; // Weak match |