diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2015-08-30 09:01:38 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2015-08-30 09:01:38 +0000 |
commit | 822d54a22cc3ac908593b13129b573f76b50aa13 (patch) | |
tree | e5d1a96d530c910b511ff7467e693145620c2ab1 /llvm/lib/Support/TargetParser.cpp | |
parent | 982e8d48f82d86d6d3030845e01a94de65ee7f2c (diff) | |
download | bcm5719-llvm-822d54a22cc3ac908593b13129b573f76b50aa13.tar.gz bcm5719-llvm-822d54a22cc3ac908593b13129b573f76b50aa13.zip |
Remove a linear walk to find the default FPU for a given CPU by directly
expanding the .def file within a StringSwitch.
llvm-svn: 246377
Diffstat (limited to 'llvm/lib/Support/TargetParser.cpp')
-rw-r--r-- | llvm/lib/Support/TargetParser.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/Support/TargetParser.cpp b/llvm/lib/Support/TargetParser.cpp index 3280035dca9..4f5d9acba51 100644 --- a/llvm/lib/Support/TargetParser.cpp +++ b/llvm/lib/Support/TargetParser.cpp @@ -110,13 +110,12 @@ struct { const char *NameCStr; size_t NameLength; ARM::ArchKind ArchID; - ARM::FPUKind DefaultFPU; bool Default; // is $Name the default CPU for $ArchID ? StringRef getName() const { return StringRef(NameCStr, NameLength); } } CPUNames[] = { #define ARM_CPU_NAME(NAME, ID, DEFAULT_FPU, IS_DEFAULT) \ - { NAME, sizeof(NAME) - 1, ID, DEFAULT_FPU, IS_DEFAULT }, + { NAME, sizeof(NAME) - 1, ID, IS_DEFAULT }, #include "llvm/Support/ARMTargetParser.def" }; @@ -151,11 +150,11 @@ unsigned llvm::ARM::getFPURestriction(unsigned FPUKind) { } unsigned llvm::ARM::getDefaultFPU(StringRef CPU) { - for (const auto C : CPUNames) { - if (CPU == C.getName()) - return C.DefaultFPU; - } - return ARM::FK_INVALID; + return StringSwitch<unsigned>(CPU) +#define ARM_CPU_NAME(NAME, ID, DEFAULT_FPU, IS_DEFAULT) \ + .Case(NAME, DEFAULT_FPU) +#include "llvm/Support/ARMTargetParser.def" + .Default(ARM::FK_INVALID); } bool llvm::ARM::getHWDivFeatures(unsigned HWDivKind, |