Go to the documentation of this file.
14 #ifndef LLVM_SUPPORT_ARMTARGETPARSER_H
15 #define LLVM_SUPPORT_ARMTARGETPARSER_H
83 #define ARM_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE) \
84 {NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE},
85 #include "ARMTargetParser.def"
98 #define ARM_HW_DIV_NAME(NAME, ID) {NAME, sizeof(NAME) - 1, ID},
99 #include "ARMTargetParser.def"
104 #define ARM_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT) ID,
105 #include "ARMTargetParser.def"
124 #define ARM_CPU_NAME(NAME, ID, DEFAULT_FPU, IS_DEFAULT, DEFAULT_EXT) \
125 {NAME, sizeof(NAME) - 1, ARM::ArchKind::ID, IS_DEFAULT, DEFAULT_EXT},
126 #include "ARMTargetParser.def"
131 #define ARM_FPU(NAME, KIND, VERSION, NEON_SUPPORT, RESTRICTION) KIND,
132 #include "ARMTargetParser.def"
188 #define ARM_FPU(NAME, KIND, VERSION, NEON_SUPPORT, RESTRICTION) \
189 {NAME, sizeof(NAME) - 1, KIND, VERSION, NEON_SUPPORT, RESTRICTION},
190 #include "llvm/Support/ARMTargetParser.def"
223 #define ARM_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, \
225 {NAME, sizeof(NAME) - 1, \
226 CPU_ATTR, sizeof(CPU_ATTR) - 1, \
227 SUB_ARCH, sizeof(SUB_ARCH) - 1, \
228 ARCH_FPU, ARCH_BASE_EXT, \
229 ArchKind::ID, ARCH_ATTR},
230 #include "llvm/Support/ARMTargetParser.def"
243 std::vector<StringRef> &Features);
252 std::vector<StringRef> &Features,
253 unsigned &ArgFPUKind);
static StringRef getName(Value *V)
This is an optimization pass for GlobalISel generic memory operations.
StringRef getCanonicalArchName(StringRef Arch)
StringRef getName() const
StringRef getArchName(ArchKind AK)
uint64_t ArchBaseExtensions
const ExtName ARCHExtNames[]
Triple - Helper class for working with autoconf configuration names.
ProfileKind parseArchProfile(StringRef Arch)
StringRef getArchSynonym(StringRef Arch)
@ SP_D16
Only single-precision instructions, with 16 D registers.
StringRef getCPUAttr(ArchKind AK)
bool getFPUFeatures(unsigned FPUKind, std::vector< StringRef > &Features)
NeonSupportLevel NeonSupport
static const FPUName FPUNames[]
void fillValidCPUArchList(SmallVectorImpl< StringRef > &Values)
StringRef getName() const
unsigned getArchAttr(ArchKind AK)
const CpuNames< ArchKind > CPUNames[]
static const ArchNames< ArchKind > ARCHNames[]
ArchKind parseCPUArch(StringRef CPU)
ArchKind parseArch(StringRef Arch)
uint64_t getDefaultExtensions(StringRef CPU, ArchKind AK)
bool appendArchExtFeatures(StringRef CPU, ARM::ArchKind AK, StringRef ArchExt, std::vector< StringRef > &Features, unsigned &ArgFPUKind)
EndianKind parseArchEndian(StringRef Arch)
uint64_t parseHWDiv(StringRef HWDiv)
StringRef getFPUSynonym(StringRef FPU)
@ D16
Only 16 D registers.
unsigned parseArchVersion(StringRef Arch)
@ Crypto
Neon with Crypto.
unsigned getDefaultFPU(StringRef CPU, ArchKind AK)
StringRef getName() const
StringRef getSubArch(ArchKind AK)
StringRef - Represent a constant reference to a string, i.e.
ISAKind parseArchISA(StringRef Arch)
ARMBuildAttrs::CPUArch ArchAttr
const struct llvm::ARM::@360 HWDivNames[]
bool getHWDivFeatures(uint64_t HWDivKind, std::vector< StringRef > &Features)
NeonSupportLevel getFPUNeonSupportLevel(unsigned FPUKind)
StringRef getDefaultCPU(StringRef Arch)
bool getExtensionFeatures(uint64_t Extensions, std::vector< StringRef > &Features)
unsigned parseFPU(StringRef FPU)
StringRef getCPUAttr() const
FPURestriction getFPURestriction(unsigned FPUKind)
StringRef getFPUName(unsigned FPUKind)
FPUVersion getFPUVersion(unsigned FPUKind)
uint64_t DefaultExtensions
StringRef computeDefaultTargetABI(const Triple &TT, StringRef CPU)
uint64_t parseArchExt(StringRef ArchExt)
StringRef getName() const
FPURestriction Restriction
StringRef getArchExtFeature(StringRef ArchExt)
StringRef getSubArch() const
StringRef getArchExtName(uint64_t ArchExtKind)