Author: Lucas Prates Date: 2023-01-27T15:17:21Z New Revision: 852bb68ddb2bf9c91421a6ce59a07a6f44d20641
URL: https://github.com/llvm/llvm-project/commit/852bb68ddb2bf9c91421a6ce59a07a6f44d20641 DIFF: https://github.com/llvm/llvm-project/commit/852bb68ddb2bf9c91421a6ce59a07a6f44d20641.diff LOG: [NFC][AArch64] Get extension strings directly from ArchInfo in target parser Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D142541 Added: Modified: clang/lib/Basic/Targets/AArch64.cpp llvm/include/llvm/TargetParser/AArch64TargetParser.h llvm/lib/TargetParser/AArch64TargetParser.cpp Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index fc171357bb60..33f9d67ef0e9 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -973,12 +973,16 @@ bool AArch64TargetInfo::initFeatureMap( } } for (const auto &Feature : FeaturesVec) - if (Feature[0] == '+') { - std::string F; - llvm::AArch64::getFeatureOption(Feature, F); - UpdatedFeaturesVec.push_back(F); - } else if (Feature[0] != '?') - UpdatedFeaturesVec.push_back(Feature); + if (Feature[0] != '?') { + std::string UpdatedFeature = Feature; + if (Feature[0] == '+') { + std::optional<llvm::AArch64::ExtensionInfo> Extension = + llvm::AArch64::parseArchExtension(Feature.substr(1)); + if (Extension) + UpdatedFeature = Extension->Feature.str(); + } + UpdatedFeaturesVec.push_back(UpdatedFeature); + } return TargetInfo::initFeatureMap(Features, Diags, CPU, UpdatedFeaturesVec); } diff --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h b/llvm/include/llvm/TargetParser/AArch64TargetParser.h index b7ecd444c7ee..385e7d6dce05 100644 --- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h +++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h @@ -513,7 +513,6 @@ StringRef getArchExtFeature(StringRef ArchExt); StringRef resolveCPUAlias(StringRef CPU); // Information by Name -void getFeatureOption(StringRef Name, std::string &Feature); std::optional<ArchInfo> getArchForCpu(StringRef CPU); // Parser diff --git a/llvm/lib/TargetParser/AArch64TargetParser.cpp b/llvm/lib/TargetParser/AArch64TargetParser.cpp index e2519e8212d8..0fea5f77b868 100644 --- a/llvm/lib/TargetParser/AArch64TargetParser.cpp +++ b/llvm/lib/TargetParser/AArch64TargetParser.cpp @@ -25,16 +25,6 @@ static unsigned checkArchVersion(llvm::StringRef Arch) { return 0; } -void AArch64::getFeatureOption(StringRef Name, std::string &Feature) { - for (const auto &E : llvm::AArch64::Extensions) { - if (Name == E.Name) { - Feature = E.Feature; - return; - } - } - Feature = Name.str(); -} - std::optional<AArch64::ArchInfo> AArch64::getArchForCpu(StringRef CPU) { if (CPU == "generic") return ARMV8A; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits