18#define GET_SUBTARGETFEATURES_ENUM
19#define GET_SUBTARGETFEATURES_KV
20#include "llvm/TargetParser/PPCGenTargetFeatures.inc"
31#define PPC_CPU(Name, Linux_SUPPORT_METHOD, LinuxID, AIX_SUPPORT_METHOD, \
34#include "llvm/TargetParser/PPCTargetParser.def"
51 .
Cases(
"common",
"405",
"generic")
52 .
Cases(
"ppc440",
"440fp",
"440")
53 .
Cases(
"630",
"power3",
"pwr3")
58 .
Case(
"ppc970",
"970")
61 .
Case(
"power4",
"pwr4")
62 .
Case(
"power5",
"pwr5")
63 .
Case(
"power5x",
"pwr5x")
64 .
Case(
"power5+",
"pwr5+")
65 .
Case(
"power6",
"pwr6")
66 .
Case(
"power6x",
"pwr6x")
67 .
Case(
"power7",
"pwr7")
68 .
Case(
"power8",
"pwr8")
69 .
Case(
"power9",
"pwr9")
70 .
Case(
"power10",
"pwr10")
71 .
Case(
"power11",
"pwr11")
72 .
Cases(
"powerpc",
"powerpc32",
"ppc")
73 .
Case(
"powerpc64",
"ppc64")
74 .
Case(
"powerpc64le",
"ppc64le")
96 if (!CPUName.
empty()) {
97 if (CPUName ==
"native") {
99 if (!CPU.
empty() && CPU !=
"generic")
104 if (CPU !=
"generic" && CPU !=
"native")
126 std::optional<StringMap<bool>> FeaturesOpt =
129 if (!FeaturesOpt.has_value())
137 Features[
"spe"] =
true;
141 if (Features.
find(
"quadword-atomics") != Features.
end() && !
T.isArch64Bit())
142 Features[
"quadword-atomics"] =
false;
Analysis containing CSE Info
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
reference emplace_back(ArgTypes &&... Args)
A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
iterator find(StringRef Key)
StringRef - Represent a constant reference to a string, i.e.
constexpr bool empty() const
empty - Check if the string is empty.
A switch()-like statement whose cases are string literals.
StringSwitch & Case(StringLiteral S, T Value)
StringSwitch & Cases(StringLiteral S0, StringLiteral S1, T Value)
Triple - Helper class for working with autoconf configuration names.
@ C
The default llvm calling convention, compatible with C.
LLVM_ABI StringRef getNormalizedPPCTargetCPU(const Triple &T, StringRef CPUName="")
LLVM_ABI std::optional< llvm::StringMap< bool > > getPPCDefaultTargetFeatures(const Triple &T, StringRef CPUName)
constexpr CPUInfo PPCCPUInfo[]
LLVM_ABI bool isValidCPU(StringRef CPU)
LLVM_ABI StringRef normalizeCPUName(StringRef CPUName)
static const CPUInfo * getCPUInfoByName(StringRef CPU)
LLVM_ABI void fillValidTuneCPUList(SmallVectorImpl< StringRef > &Values)
LLVM_ABI StringRef getNormalizedPPCTuneCPU(const Triple &T, StringRef CPUName="")
LLVM_ABI void fillValidCPUList(SmallVectorImpl< StringRef > &Values)
LLVM_ABI StringRef getHostCPUName()
getHostCPUName - Get the LLVM name for the host CPU.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI std::optional< llvm::StringMap< bool > > getCPUDefaultTargetFeatures(StringRef CPU, ArrayRef< BasicSubtargetSubTypeKV > ProcDesc, ArrayRef< BasicSubtargetFeatureKV > ProcFeatures)