summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2015-05-27 14:15:12 +0000
committerRenato Golin <renato.golin@linaro.org>2015-05-27 14:15:12 +0000
commitf05bf0090bd2c7d9a6d101e897b90fe130b57f1e (patch)
tree3f42df305870e452302af753a2d67cbd5ca42f82 /clang/lib/Basic
parent9aa2da0025bb8ad821a84b20edd130a33c536159 (diff)
downloadbcm5719-llvm-f05bf0090bd2c7d9a6d101e897b90fe130b57f1e.tar.gz
bcm5719-llvm-f05bf0090bd2c7d9a6d101e897b90fe130b57f1e.zip
ARMTargetParser FIXME getCPUProfile A/R/M
This is the last of the easy ones. llvm-svn: 238324
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index ce3bd481189..a768081e70e 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -4346,16 +4346,21 @@ public:
}
}
- // FIXME: Use ARMTargetParser
- return llvm::StringSwitch<const char *>(Name)
- .Cases("cortex-a5", "cortex-a7", "cortex-a8", "A")
- .Cases("cortex-a9", "cortex-a12", "cortex-a15", "cortex-a17", "krait",
- "A")
- .Cases("cortex-a53", "cortex-a57", "cortex-a72", "A")
- .Cases("cortex-m3", "cortex-m4", "cortex-m0", "cortex-m0plus", "M")
- .Cases("cortex-m1", "cortex-m7", "sc000", "sc300", "M")
- .Cases("cortex-r4", "cortex-r4f", "cortex-r5", "cortex-r7", "R")
- .Default("");
+ unsigned CPUArch = llvm::ARMTargetParser::parseCPUArch(Name);
+ if (CPUArch == llvm::ARM::AK_INVALID)
+ return "";
+
+ StringRef ArchName = llvm::ARMTargetParser::getArchName(CPUArch);
+ switch(llvm::ARMTargetParser::parseArchProfile(ArchName)) {
+ case llvm::ARM::PK_A:
+ return "A";
+ case llvm::ARM::PK_R:
+ return "R";
+ case llvm::ARM::PK_M:
+ return "M";
+ default:
+ return "";
+ }
}
bool setCPU(const std::string &Name) override {
if (!getCPUDefineSuffix(Name))
OpenPOWER on IntegriCloud