@@ -622,9 +622,8 @@ AArch64TargetInfo::getVScaleRange(const LangOptions &LangOpts) const {
622
622
unsigned AArch64TargetInfo::multiVersionSortPriority (StringRef Name) const {
623
623
if (Name == " default" )
624
624
return 0 ;
625
- for (const auto &E : llvm::AArch64::Extensions)
626
- if (Name == E.Name )
627
- return E.FmvPriority ;
625
+ if (auto Ext = llvm::AArch64::parseArchExtension (Name))
626
+ return Ext->FmvPriority ;
628
627
return 0 ;
629
628
}
630
629
@@ -634,24 +633,19 @@ unsigned AArch64TargetInfo::multiVersionFeatureCost() const {
634
633
}
635
634
636
635
bool AArch64TargetInfo::doesFeatureAffectCodeGen (StringRef Name) const {
637
- auto F = llvm::find_if (llvm::AArch64::Extensions, [&](const auto &E) {
638
- return Name == E.Name && !E.DependentFeatures .empty ();
639
- });
640
- return F != std::end (llvm::AArch64::Extensions);
636
+ if (auto Ext = llvm::AArch64::parseArchExtension (Name))
637
+ return !Ext->DependentFeatures .empty ();
638
+ return false ;
641
639
}
642
640
643
641
StringRef AArch64TargetInfo::getFeatureDependencies (StringRef Name) const {
644
- auto F = llvm::find_if (llvm::AArch64::Extensions,
645
- [&](const auto &E) { return Name == E.Name ; });
646
- return F != std::end (llvm::AArch64::Extensions) ? F->DependentFeatures
647
- : StringRef ();
642
+ if (auto Ext = llvm::AArch64::parseArchExtension (Name))
643
+ return Ext->DependentFeatures ;
644
+ return StringRef ();
648
645
}
649
646
650
647
bool AArch64TargetInfo::validateCpuSupports (StringRef FeatureStr) const {
651
- for (const auto &E : llvm::AArch64::Extensions)
652
- if (FeatureStr == E.Name )
653
- return true ;
654
- return false ;
648
+ return llvm::AArch64::parseArchExtension (FeatureStr).has_value ();
655
649
}
656
650
657
651
bool AArch64TargetInfo::hasFeature (StringRef Feature) const {
0 commit comments