Lines Matching full:features
102 std::vector<StringRef> &Features) {
104 if (!llvm::ARM::getHWDivFeatures(HWDivID, Features))
111 std::vector<StringRef> &Features) {
113 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
118 // Decode ARM features from string like +[no]featureA+[no]featureB+...
121 std::vector<StringRef> &Features,
127 if (!appendArchExtFeatures(CPU, ArchKind, Feature, Features, ArgFPUKind))
134 std::vector<StringRef> &Features) {
139 llvm::ARM::getExtensionFeatures(Extension, Features);
148 std::vector<StringRef> &Features,
157 !DecodeARMFeatures(D, Split.second, CPUName, ArchKind, Features,
166 std::vector<StringRef> &Features,
176 Features, ArgFPUKind)))
516 std::vector<StringRef> &Features,
523 // This vector will accumulate features from the architecture
525 // -mcpu=foo+bar). We want to apply those after the features derived
545 Features.push_back("+soft-float");
549 Features.push_back("+soft-float-abi");
578 Features.push_back("+read-tp-tpidrurw");
580 Features.push_back("+read-tp-tpidruro");
582 Features.push_back("+read-tp-tpidrprw");
607 // This will set any features after the base architecture.
618 // Add CPU features for generic CPUs
621 Features.push_back(
624 // This sets the default features for the specified CPU. We certainly don't
625 // want to override the features that have been explicitly specified on the
628 DecodeARMFeaturesFromCPU(D, CPUName, Features);
646 (void)getARMFPUFeatures(D, WaFPU->first, Args, WaFPU->second, Features);
648 FPUKind = getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features);
652 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
659 (void)llvm::ARM::getFPUFeatures(FPUKind, Features);
669 (void)llvm::ARM::getFPUFeatures(FPUKind, Features);
674 (void)llvm::ARM::getFPUFeatures(FPUKind, Features);
678 // Now we've finished accumulating features from arch, cpu and fpu,
681 Features.insert(std::end(Features),
690 getARMHWDivFeatures(D, WaHDiv->first, Args, WaHDiv->second, Features);
692 getARMHWDivFeatures(D, HDivArg, Args, HDivArg->getValue(), Features);
695 // Must happen before any features are disabled due to soft-float.
698 const auto ItRNoFullFP16 = std::find(Features.rbegin(), Features.rend(), "-fullfp16");
699 const auto ItRFP16FML = std::find(Features.rbegin(), Features.rend(), "+fp16fml");
701 const auto ItRFullFP16 = std::find(Features.rbegin(), Features.rend(), "+fullfp16");
705 if (std::find(Features.rbegin(), ItRFullFP16, "-fp16fml") == ItRFullFP16)
706 Features.push_back("+fp16fml");
716 Features.push_back("-fp16fml");
718 Features.push_back("+fullfp16");
727 llvm::ARM::getFPUFeatures(llvm::ARM::FK_NONE, Features);
729 // Disable all features relating to hardware FP, not already disabled by the
731 Features.insert(Features.end(),
742 Features.insert(Features.end(),
744 HasFPRegs = hasIntegerMVE(Features);
748 Features.emplace_back("-fpregs");
753 Features.push_back("+crc");
755 Features.push_back("-crc");
765 Features.push_back("-mve.fp");
778 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
782 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
786 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
789 const bool FoundSHA2 = ItSHA2 != Features.rend();
790 const bool FoundAES = ItAES != Features.rend();
795 if (ItCrypto != Features.rend()) {
797 Features.push_back("+crypto");
799 Features.push_back("-crypto");
801 Features.push_back("+sha2");
803 Features.push_back("-sha2");
805 Features.push_back("+aes");
807 Features.push_back("-aes");
832 Features.push_back("-sha2");
833 Features.push_back("-aes");
842 Features.push_back("+aapcs-frame-chain");
847 Features.push_back("+8msecext");
856 Features.push_back("+fix-cmse-cve-2021-35465");
858 Features.push_back("-fix-cmse-cve-2021-35465");
865 Features.push_back("+fix-cortex-a57-aes-1742098");
867 Features.push_back("-fix-cortex-a57-aes-1742098");
877 Features.push_back("+long-calls");
880 Features.push_back("+long-calls");
905 Features.push_back("+execute-only");
918 Features.push_back("+strict-align");
946 Features.push_back("+strict-align");
950 Features.push_back("+strict-align");
956 Features.push_back("+strict-align");
964 Features.push_back("+reserve-r9");
968 Features.push_back("+no-movt");
971 Features.push_back("+no-neg-immediates");
1017 Features.push_back("+harden-sls-retbr");
1019 Features.push_back("+harden-sls-blr");
1021 Features.push_back("+harden-sls-nocomdat");
1026 Features.push_back("+no-bti-at-return-twice");