Lines Matching full:features
82 std::vector<StringRef> &Features) {
84 if (!llvm::ARM::getHWDivFeatures(HWDivID, Features))
91 std::vector<StringRef> &Features) {
93 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
98 // Decode ARM features from string like +[no]featureA+[no]featureB+...
101 std::vector<StringRef> &Features,
107 if (!appendArchExtFeatures(CPU, ArchKind, Feature, Features, ArgFPUKind))
114 std::vector<StringRef> &Features) {
119 llvm::ARM::getExtensionFeatures(Extension, Features);
128 std::vector<StringRef> &Features,
137 !DecodeARMFeatures(D, Split.second, CPUName, ArchKind, Features,
146 std::vector<StringRef> &Features,
156 Features, ArgFPUKind)))
497 std::vector<StringRef> &Features,
504 // This vector will accumulate features from the architecture
506 // -mcpu=foo+bar). We want to apply those after the features derived
526 Features.push_back("+soft-float");
530 Features.push_back("+soft-float-abi");
559 Features.push_back("+read-tp-tpidrurw");
561 Features.push_back("+read-tp-tpidruro");
563 Features.push_back("+read-tp-tpidrprw");
588 // This will set any features after the base architecture.
599 // Add CPU features for generic CPUs
602 Features.push_back(
605 // This sets the default features for the specified CPU. We certainly don't
606 // want to override the features that have been explicitly specified on the
609 DecodeARMFeaturesFromCPU(D, CPUName, Features);
627 (void)getARMFPUFeatures(D, WaFPU->first, Args, WaFPU->second, Features);
629 FPUKind = getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features);
633 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
640 (void)llvm::ARM::getFPUFeatures(FPUKind, Features);
647 (void)llvm::ARM::getFPUFeatures(FPUKind, Features);
651 // Now we've finished accumulating features from arch, cpu and fpu,
654 Features.insert(std::end(Features),
663 getARMHWDivFeatures(D, WaHDiv->first, Args, WaHDiv->second, Features);
665 getARMHWDivFeatures(D, HDivArg, Args, HDivArg->getValue(), Features);
668 // Must happen before any features are disabled due to soft-float.
671 const auto ItRNoFullFP16 = std::find(Features.rbegin(), Features.rend(), "-fullfp16");
672 const auto ItRFP16FML = std::find(Features.rbegin(), Features.rend(), "+fp16fml");
674 const auto ItRFullFP16 = std::find(Features.rbegin(), Features.rend(), "+fullfp16");
678 if (std::find(Features.rbegin(), ItRFullFP16, "-fp16fml") == ItRFullFP16)
679 Features.push_back("+fp16fml");
689 Features.push_back("-fp16fml");
691 Features.push_back("+fullfp16");
700 llvm::ARM::getFPUFeatures(llvm::ARM::FK_NONE, Features);
702 // Disable all features relating to hardware FP, not already disabled by the
704 Features.insert(Features.end(),
715 Features.insert(Features.end(),
717 HasFPRegs = hasIntegerMVE(Features);
721 Features.emplace_back("-fpregs");
726 Features.push_back("+crc");
728 Features.push_back("-crc");
742 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
746 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
750 llvm::find_if(llvm::reverse(Features), [](const StringRef F) {
753 const bool FoundSHA2 = ItSHA2 != Features.rend();
754 const bool FoundAES = ItAES != Features.rend();
759 if (ItCrypto != Features.rend()) {
761 Features.push_back("+crypto");
763 Features.push_back("-crypto");
765 Features.push_back("+sha2");
767 Features.push_back("-sha2");
769 Features.push_back("+aes");
771 Features.push_back("-aes");
796 Features.push_back("-sha2");
797 Features.push_back("-aes");
806 Features.push_back("+aapcs-frame-chain");
811 Features.push_back("+8msecext");
820 Features.push_back("+fix-cmse-cve-2021-35465");
822 Features.push_back("-fix-cmse-cve-2021-35465");
829 Features.push_back("+fix-cortex-a57-aes-1742098");
831 Features.push_back("-fix-cortex-a57-aes-1742098");
841 Features.push_back("+long-calls");
844 Features.push_back("+long-calls");
869 Features.push_back("+execute-only");
882 Features.push_back("+strict-align");
910 Features.push_back("+strict-align");
916 Features.push_back("+strict-align");
924 Features.push_back("+reserve-r9");
928 Features.push_back("+no-movt");
931 Features.push_back("+no-neg-immediates");
977 Features.push_back("+harden-sls-retbr");
979 Features.push_back("+harden-sls-blr");
981 Features.push_back("+harden-sls-nocomdat");
986 Features.push_back("+no-bti-at-return-twice");