Lines Matching refs:Features

863   void getDefaultFeatures(llvm::StringMap<bool> &Features) const override;
865 bool handleTargetFeatures(std::vector<std::string> &Features,
868 void setFeatureEnabled(llvm::StringMap<bool> &Features, StringRef Name,
1017 bool PPCTargetInfo::handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
1019 for (unsigned i = 0, e = Features.size(); i !=e; ++i) { in handleTargetFeatures()
1021 if (Features[i][0] == '-') in handleTargetFeatures()
1024 StringRef Feature = StringRef(Features[i]).substr(1); in handleTargetFeatures()
1261 void PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const { in getDefaultFeatures()
1262 Features["altivec"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1276 Features["qpx"] = (CPU == "a2q"); in getDefaultFeatures()
1277 Features["crypto"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1281 Features["power8-vector"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1285 Features["bpermd"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1290 Features["extdiv"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1295 Features["direct-move"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1299 Features["vsx"] = llvm::StringSwitch<bool>(CPU) in getDefaultFeatures()
1333 void PPCTargetInfo::setFeatureEnabled(llvm::StringMap<bool> &Features, in setFeatureEnabled() argument
1341 Features["direct-move"] = ExplicitFeatures["direct-move"]; in setFeatureEnabled()
1342 Features["power8-vector"] = ExplicitFeatures["power8-vector"]; in setFeatureEnabled()
1347 Features["vsx"] = true; in setFeatureEnabled()
1350 Features[Name] = Enabled; in setFeatureEnabled()
2284 static void setSSELevel(llvm::StringMap<bool> &Features, X86SSEEnum Level,
2286 static void setMMXLevel(llvm::StringMap<bool> &Features, MMX3DNowEnum Level,
2288 static void setXOPLevel(llvm::StringMap<bool> &Features, XOPEnum Level,
2290 void setFeatureEnabled(llvm::StringMap<bool> &Features, in setFeatureEnabled() argument
2292 setFeatureEnabledImpl(Features, Name, Enabled); in setFeatureEnabled()
2296 static void setFeatureEnabledImpl(llvm::StringMap<bool> &Features,
2298 void getDefaultFeatures(llvm::StringMap<bool> &Features) const override;
2300 bool handleTargetFeatures(std::vector<std::string> &Features,
2489 void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const { in getDefaultFeatures()
2494 setFeatureEnabledImpl(Features, "sse2", true); in getDefaultFeatures()
2509 setFeatureEnabledImpl(Features, "mmx", true); in getDefaultFeatures()
2514 setFeatureEnabledImpl(Features, "sse", true); in getDefaultFeatures()
2520 setFeatureEnabledImpl(Features, "sse2", true); in getDefaultFeatures()
2525 setFeatureEnabledImpl(Features, "sse3", true); in getDefaultFeatures()
2526 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2530 setFeatureEnabledImpl(Features, "ssse3", true); in getDefaultFeatures()
2531 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2534 setFeatureEnabledImpl(Features, "sse4.1", true); in getDefaultFeatures()
2535 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2538 setFeatureEnabledImpl(Features, "avx512f", true); in getDefaultFeatures()
2539 setFeatureEnabledImpl(Features, "avx512cd", true); in getDefaultFeatures()
2540 setFeatureEnabledImpl(Features, "avx512dq", true); in getDefaultFeatures()
2541 setFeatureEnabledImpl(Features, "avx512bw", true); in getDefaultFeatures()
2542 setFeatureEnabledImpl(Features, "avx512vl", true); in getDefaultFeatures()
2545 setFeatureEnabledImpl(Features, "rdseed", true); in getDefaultFeatures()
2546 setFeatureEnabledImpl(Features, "adx", true); in getDefaultFeatures()
2549 setFeatureEnabledImpl(Features, "avx2", true); in getDefaultFeatures()
2550 setFeatureEnabledImpl(Features, "lzcnt", true); in getDefaultFeatures()
2551 setFeatureEnabledImpl(Features, "bmi", true); in getDefaultFeatures()
2552 setFeatureEnabledImpl(Features, "bmi2", true); in getDefaultFeatures()
2553 setFeatureEnabledImpl(Features, "rtm", true); in getDefaultFeatures()
2554 setFeatureEnabledImpl(Features, "fma", true); in getDefaultFeatures()
2557 setFeatureEnabledImpl(Features, "rdrnd", true); in getDefaultFeatures()
2558 setFeatureEnabledImpl(Features, "f16c", true); in getDefaultFeatures()
2559 setFeatureEnabledImpl(Features, "fsgsbase", true); in getDefaultFeatures()
2562 setFeatureEnabledImpl(Features, "avx", true); in getDefaultFeatures()
2566 setFeatureEnabledImpl(Features, "aes", true); in getDefaultFeatures()
2567 setFeatureEnabledImpl(Features, "pclmul", true); in getDefaultFeatures()
2570 setFeatureEnabledImpl(Features, "sse4.2", true); in getDefaultFeatures()
2571 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2574 setFeatureEnabledImpl(Features, "avx512f", true); in getDefaultFeatures()
2575 setFeatureEnabledImpl(Features, "avx512cd", true); in getDefaultFeatures()
2576 setFeatureEnabledImpl(Features, "avx512er", true); in getDefaultFeatures()
2577 setFeatureEnabledImpl(Features, "avx512pf", true); in getDefaultFeatures()
2578 setFeatureEnabledImpl(Features, "rdseed", true); in getDefaultFeatures()
2579 setFeatureEnabledImpl(Features, "adx", true); in getDefaultFeatures()
2580 setFeatureEnabledImpl(Features, "lzcnt", true); in getDefaultFeatures()
2581 setFeatureEnabledImpl(Features, "bmi", true); in getDefaultFeatures()
2582 setFeatureEnabledImpl(Features, "bmi2", true); in getDefaultFeatures()
2583 setFeatureEnabledImpl(Features, "rtm", true); in getDefaultFeatures()
2584 setFeatureEnabledImpl(Features, "fma", true); in getDefaultFeatures()
2585 setFeatureEnabledImpl(Features, "rdrnd", true); in getDefaultFeatures()
2586 setFeatureEnabledImpl(Features, "f16c", true); in getDefaultFeatures()
2587 setFeatureEnabledImpl(Features, "fsgsbase", true); in getDefaultFeatures()
2588 setFeatureEnabledImpl(Features, "aes", true); in getDefaultFeatures()
2589 setFeatureEnabledImpl(Features, "pclmul", true); in getDefaultFeatures()
2590 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2596 setFeatureEnabledImpl(Features, "3dnow", true); in getDefaultFeatures()
2601 setFeatureEnabledImpl(Features, "3dnowa", true); in getDefaultFeatures()
2606 setFeatureEnabledImpl(Features, "sse", true); in getDefaultFeatures()
2607 setFeatureEnabledImpl(Features, "3dnowa", true); in getDefaultFeatures()
2613 setFeatureEnabledImpl(Features, "sse2", true); in getDefaultFeatures()
2614 setFeatureEnabledImpl(Features, "3dnowa", true); in getDefaultFeatures()
2617 setFeatureEnabledImpl(Features, "sse4a", true); in getDefaultFeatures()
2618 setFeatureEnabledImpl(Features, "lzcnt", true); in getDefaultFeatures()
2619 setFeatureEnabledImpl(Features, "popcnt", true); in getDefaultFeatures()
2624 setFeatureEnabledImpl(Features, "sse3", true); in getDefaultFeatures()
2625 setFeatureEnabledImpl(Features, "3dnowa", true); in getDefaultFeatures()
2628 setFeatureEnabledImpl(Features, "avx", true); in getDefaultFeatures()
2629 setFeatureEnabledImpl(Features, "aes", true); in getDefaultFeatures()
2630 setFeatureEnabledImpl(Features, "pclmul", true); in getDefaultFeatures()
2631 setFeatureEnabledImpl(Features, "bmi", true); in getDefaultFeatures()
2632 setFeatureEnabledImpl(Features, "f16c", true); in getDefaultFeatures()
2635 setFeatureEnabledImpl(Features, "ssse3", true); in getDefaultFeatures()
2636 setFeatureEnabledImpl(Features, "sse4a", true); in getDefaultFeatures()
2637 setFeatureEnabledImpl(Features, "lzcnt", true); in getDefaultFeatures()
2638 setFeatureEnabledImpl(Features, "popcnt", true); in getDefaultFeatures()
2639 setFeatureEnabledImpl(Features, "prfchw", true); in getDefaultFeatures()
2640 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2643 setFeatureEnabledImpl(Features, "avx2", true); in getDefaultFeatures()
2644 setFeatureEnabledImpl(Features, "bmi2", true); in getDefaultFeatures()
2647 setFeatureEnabledImpl(Features, "fsgsbase", true); in getDefaultFeatures()
2650 setFeatureEnabledImpl(Features, "bmi", true); in getDefaultFeatures()
2651 setFeatureEnabledImpl(Features, "fma", true); in getDefaultFeatures()
2652 setFeatureEnabledImpl(Features, "f16c", true); in getDefaultFeatures()
2653 setFeatureEnabledImpl(Features, "tbm", true); in getDefaultFeatures()
2657 setFeatureEnabledImpl(Features, "xop", true); in getDefaultFeatures()
2658 setFeatureEnabledImpl(Features, "lzcnt", true); in getDefaultFeatures()
2659 setFeatureEnabledImpl(Features, "aes", true); in getDefaultFeatures()
2660 setFeatureEnabledImpl(Features, "pclmul", true); in getDefaultFeatures()
2661 setFeatureEnabledImpl(Features, "prfchw", true); in getDefaultFeatures()
2662 setFeatureEnabledImpl(Features, "cx16", true); in getDefaultFeatures()
2667 void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features, in setSSELevel() argument
2672 Features["avx512f"] = true; in setSSELevel()
2674 Features["avx2"] = true; in setSSELevel()
2676 Features["avx"] = true; in setSSELevel()
2678 Features["sse4.2"] = true; in setSSELevel()
2680 Features["sse4.1"] = true; in setSSELevel()
2682 Features["ssse3"] = true; in setSSELevel()
2684 Features["sse3"] = true; in setSSELevel()
2686 Features["sse2"] = true; in setSSELevel()
2688 Features["sse"] = true; in setSSELevel()
2698 Features["sse"] = false; in setSSELevel()
2700 Features["sse2"] = Features["pclmul"] = Features["aes"] = in setSSELevel()
2701 Features["sha"] = false; in setSSELevel()
2703 Features["sse3"] = false; in setSSELevel()
2704 setXOPLevel(Features, NoXOP, false); in setSSELevel()
2706 Features["ssse3"] = false; in setSSELevel()
2708 Features["sse4.1"] = false; in setSSELevel()
2710 Features["sse4.2"] = false; in setSSELevel()
2712 Features["fma"] = Features["avx"] = Features["f16c"] = false; in setSSELevel()
2713 setXOPLevel(Features, FMA4, false); in setSSELevel()
2715 Features["avx2"] = false; in setSSELevel()
2717 Features["avx512f"] = Features["avx512cd"] = Features["avx512er"] = in setSSELevel()
2718 Features["avx512pf"] = Features["avx512dq"] = Features["avx512bw"] = in setSSELevel()
2719 Features["avx512vl"] = false; in setSSELevel()
2723 void X86TargetInfo::setMMXLevel(llvm::StringMap<bool> &Features, in setMMXLevel() argument
2728 Features["3dnowa"] = true; in setMMXLevel()
2730 Features["3dnow"] = true; in setMMXLevel()
2732 Features["mmx"] = true; in setMMXLevel()
2742 Features["mmx"] = false; in setMMXLevel()
2744 Features["3dnow"] = false; in setMMXLevel()
2746 Features["3dnowa"] = false; in setMMXLevel()
2750 void X86TargetInfo::setXOPLevel(llvm::StringMap<bool> &Features, XOPEnum Level, in setXOPLevel() argument
2755 Features["xop"] = true; in setXOPLevel()
2757 Features["fma4"] = true; in setXOPLevel()
2758 setSSELevel(Features, AVX, true); in setXOPLevel()
2760 Features["sse4a"] = true; in setXOPLevel()
2761 setSSELevel(Features, SSE3, true); in setXOPLevel()
2771 Features["sse4a"] = false; in setXOPLevel()
2773 Features["fma4"] = false; in setXOPLevel()
2775 Features["xop"] = false; in setXOPLevel()
2779 void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features, in setFeatureEnabledImpl() argument
2785 Features[Name] = Enabled; in setFeatureEnabledImpl()
2788 setMMXLevel(Features, MMX, Enabled); in setFeatureEnabledImpl()
2790 setSSELevel(Features, SSE1, Enabled); in setFeatureEnabledImpl()
2792 setSSELevel(Features, SSE2, Enabled); in setFeatureEnabledImpl()
2794 setSSELevel(Features, SSE3, Enabled); in setFeatureEnabledImpl()
2796 setSSELevel(Features, SSSE3, Enabled); in setFeatureEnabledImpl()
2798 setSSELevel(Features, SSE42, Enabled); in setFeatureEnabledImpl()
2800 setSSELevel(Features, SSE41, Enabled); in setFeatureEnabledImpl()
2802 setMMXLevel(Features, AMD3DNow, Enabled); in setFeatureEnabledImpl()
2804 setMMXLevel(Features, AMD3DNowAthlon, Enabled); in setFeatureEnabledImpl()
2807 setSSELevel(Features, SSE2, Enabled); in setFeatureEnabledImpl()
2810 setSSELevel(Features, SSE2, Enabled); in setFeatureEnabledImpl()
2812 setSSELevel(Features, AVX, Enabled); in setFeatureEnabledImpl()
2814 setSSELevel(Features, AVX2, Enabled); in setFeatureEnabledImpl()
2816 setSSELevel(Features, AVX512F, Enabled); in setFeatureEnabledImpl()
2820 setSSELevel(Features, AVX512F, Enabled); in setFeatureEnabledImpl()
2823 setSSELevel(Features, AVX, Enabled); in setFeatureEnabledImpl()
2825 setXOPLevel(Features, FMA4, Enabled); in setFeatureEnabledImpl()
2827 setXOPLevel(Features, XOP, Enabled); in setFeatureEnabledImpl()
2829 setXOPLevel(Features, SSE4A, Enabled); in setFeatureEnabledImpl()
2832 setSSELevel(Features, AVX, Enabled); in setFeatureEnabledImpl()
2835 setSSELevel(Features, SSE2, Enabled); in setFeatureEnabledImpl()
2842 setSSELevel(Features, SSE42, Enabled); in setFeatureEnabledImpl()
2844 setSSELevel(Features, SSE41, Enabled); in setFeatureEnabledImpl()
2850 bool X86TargetInfo::handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
2853 for (unsigned i = 0, e = Features.size(); i !=e; ++i) { in handleTargetFeatures()
2855 if (Features[i][0] == '-') in handleTargetFeatures()
2858 StringRef Feature = StringRef(Features[i]).substr(1); in handleTargetFeatures()
2975 assert(Features[i][0] == '+' && "Invalid target feature!"); in handleTargetFeatures()
3009 std::find(Features.begin(), Features.end(), "-popcnt") == Features.end()){ in handleTargetFeatures()
3011 Features.push_back("+popcnt"); in handleTargetFeatures()
3016 std::find(Features.begin(), Features.end(), "-prfchw") == Features.end()){ in handleTargetFeatures()
3018 Features.push_back("+prfchw"); in handleTargetFeatures()
3036 it = std::find(Features.begin(), Features.end(), "-mmx"); in handleTargetFeatures()
3037 if (it != Features.end()) in handleTargetFeatures()
3038 Features.erase(it); in handleTargetFeatures()
4304 void getDefaultFeatures(llvm::StringMap<bool> &Features) const override { in getDefaultFeatures()
4311 Features["vfp2"] = true; in getDefaultFeatures()
4313 Features["vfp3"] = true; in getDefaultFeatures()
4314 Features["neon"] = true; in getDefaultFeatures()
4317 Features["vfp4"] = true; in getDefaultFeatures()
4318 Features["neon"] = true; in getDefaultFeatures()
4322 Features["vfp4"] = true; in getDefaultFeatures()
4323 Features["neon"] = true; in getDefaultFeatures()
4324 Features["hwdiv"] = true; in getDefaultFeatures()
4325 Features["hwdiv-arm"] = true; in getDefaultFeatures()
4328 Features["fp-armv8"] = true; in getDefaultFeatures()
4329 Features["neon"] = true; in getDefaultFeatures()
4330 Features["hwdiv"] = true; in getDefaultFeatures()
4331 Features["hwdiv-arm"] = true; in getDefaultFeatures()
4332 Features["crc"] = true; in getDefaultFeatures()
4333 Features["crypto"] = true; in getDefaultFeatures()
4335 Features["hwdiv"] = true; in getDefaultFeatures()
4336 Features["hwdiv-arm"] = true; in getDefaultFeatures()
4339 Features["hwdiv"] = true; in getDefaultFeatures()
4343 bool handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
4354 for (const auto &Feature : Features) { in handleTargetFeatures()
4394 Features.push_back("+neonfp"); in handleTargetFeatures()
4396 Features.push_back("-neonfp"); in handleTargetFeatures()
4400 std::find(Features.begin(), Features.end(), "+soft-float-abi"); in handleTargetFeatures()
4401 if (Feature != Features.end()) in handleTargetFeatures()
4402 Features.erase(Feature); in handleTargetFeatures()
5104 bool handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
5109 for (unsigned i = 0, e = Features.size(); i != e; ++i) { in handleTargetFeatures()
5110 if (Features[i] == "+neon") in handleTargetFeatures()
5112 if (Features[i] == "+crc") in handleTargetFeatures()
5114 if (Features[i] == "+crypto") in handleTargetFeatures()
5502 bool handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
5506 auto Feature = std::find(Features.begin(), Features.end(), "+soft-float"); in handleTargetFeatures()
5507 if (Feature != Features.end()) { in handleTargetFeatures()
5509 Features.erase(Feature); in handleTargetFeatures()
5771 void getDefaultFeatures(llvm::StringMap<bool> &Features) const override { in getDefaultFeatures()
5773 Features["transactional-execution"] = true; in getDefaultFeatures()
5775 Features["transactional-execution"] = true; in getDefaultFeatures()
5776 Features["vector"] = true; in getDefaultFeatures()
5780 bool handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
5783 for (unsigned i = 0, e = Features.size(); i != e; ++i) { in handleTargetFeatures()
5784 if (Features[i] == "+transactional-execution") in handleTargetFeatures()
5786 if (Features[i] == "+vector") in handleTargetFeatures()
6138 void getDefaultFeatures(llvm::StringMap<bool> &Features) const override { in getDefaultFeatures()
6140 Features["mips64r2"] = Features["cnmips"] = true; in getDefaultFeatures()
6142 Features[CPU] = true; in getDefaultFeatures()
6324 bool handleTargetFeatures(std::vector<std::string> &Features, in handleTargetFeatures() argument
6334 for (std::vector<std::string>::iterator it = Features.begin(), in handleTargetFeatures()
6335 ie = Features.end(); it != ie; ++it) { in handleTargetFeatures()
6686 void getDefaultFeatures(llvm::StringMap<bool> &Features) const override { in getDefaultFeatures()
7425 llvm::StringMap<bool> Features; in CreateTargetInfo() local
7426 Target->getDefaultFeatures(Features); in CreateTargetInfo()
7434 Target->setFeatureEnabled(Features, Name + 1, Enabled); in CreateTargetInfo()
7441 Opts->Features.clear(); in CreateTargetInfo()
7442 for (llvm::StringMap<bool>::const_iterator it = Features.begin(), in CreateTargetInfo()
7443 ie = Features.end(); it != ie; ++it) in CreateTargetInfo()
7444 Opts->Features.push_back((it->second ? "+" : "-") + it->first().str()); in CreateTargetInfo()
7445 if (!Target->handleTargetFeatures(Opts->Features, Diags)) in CreateTargetInfo()