LLVM 20.0.0git
|
Define some predicates that are used for node matching. More...
Namespaces | |
namespace | EHABI |
namespace | WinEH |
Classes | |
struct | ArchNames |
struct | CpuNames |
struct | ExtName |
struct | FPUName |
struct | ParsedBranchProtection |
Variables | |
const ExtName | ARCHExtNames [] |
struct { | |
StringRef llvm::ARM::Name | |
uint64_t llvm::ARM::ID | |
} | HWDivNames [] |
const CpuNames | CPUNames [] |
static const FPUName | FPUNames [] |
static const ArchNames | ARMArchNames [] |
const unsigned | RoundingBitsPos = 22 |
const unsigned | FPStatusBits = 0xf800009f |
const unsigned | FPReservedBits = 0x00006060 |
const RegisterBankInfo::PartialMapping | PartMappings [] |
const RegisterBankInfo::ValueMapping | ValueMappings [] |
Define some predicates that are used for node matching.
enum llvm::ARM::ArchExtKind : uint64_t |
Definition at line 31 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
ARM_ARCH |
Definition at line 97 of file ARMTargetParser.h.
enum llvm::ARM::DW_ISA |
Enumerator | |
---|---|
DW_ISA_ARM_thumb | |
DW_ISA_ARM_arm |
Definition at line 25 of file ARMAsmPrinter.h.
|
strong |
Enumerator | |
---|---|
INVALID | |
LITTLE | |
BIG |
Definition at line 23 of file ARMTargetParserCommon.h.
enum llvm::ARM::Fixups |
Definition at line 16 of file ARMFixupKinds.h.
enum llvm::ARM::FPUKind |
Enumerator | |
---|---|
FK_LAST |
Definition at line 122 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
None | No restriction. |
D16 | Only 16 D registers. |
SP_D16 | Only single-precision instructions, with 16 D registers. |
Definition at line 140 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
NONE | |
VFPV2 | |
VFPV3 | |
VFPV3_FP16 | |
VFPV4 | |
VFPV5 | |
VFPV5_FULLFP16 |
Definition at line 129 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
INVALID | |
ARM | |
THUMB | |
AARCH64 |
Definition at line 21 of file ARMTargetParserCommon.h.
|
strong |
Enumerator | |
---|---|
None | No Neon. |
Neon | Neon. |
Crypto | Neon with Crypto. |
Definition at line 155 of file ARMTargetParser.h.
Enumerator | |
---|---|
OPERAND_VPRED_R | |
OPERAND_VPRED_N |
Definition at line 113 of file ARMMCTargetDesc.h.
Enumerator | |
---|---|
PMI_GPR | |
PMI_SPR | |
PMI_DPR | |
PMI_Min |
Definition at line 31 of file ARMRegisterBankInfo.cpp.
|
strong |
Mask values for IT and VPT Blocks, to be used by MCOperands.
Note that this is different from the "real" encoding used by the instructions. In this encoding, the lowest set bit indicates the end of the encoding, and above that, "1" indicates an else, while "0" indicates a then. Tx = x100 Txy = xy10 Txyz = xyz1
Enumerator | |
---|---|
T | |
TT | |
TE | |
TTT | |
TTE | |
TEE | |
TET | |
TTTT | |
TTTE | |
TTEE | |
TTET | |
TEEE | |
TEET | |
TETT | |
TETE |
Definition at line 105 of file ARMBaseInfo.h.
|
strong |
Enumerator | |
---|---|
INVALID | |
A | |
R | |
M |
Definition at line 162 of file ARMTargetParser.h.
enum llvm::ARM::Rounding |
Possible values of current rounding mode, which is specified in bits 23:22 of FPSCR.
Enumerator | |
---|---|
RN | |
RP | |
RM | |
RZ | |
rmMask |
Definition at line 367 of file ARMISelLowering.h.
Enumerator | |
---|---|
InvalidIdx | |
GPR3OpsIdx | |
SPR3OpsIdx | |
DPR3OpsIdx |
Definition at line 68 of file ARMRegisterBankInfo.cpp.
bool llvm::ARM::appendArchExtFeatures | ( | StringRef | CPU, |
ARM::ArchKind | AK, | ||
StringRef | ArchExt, | ||
std::vector< StringRef > & | Features, | ||
ARM::FPUKind & | ArgFPUKind | ||
) |
Definition at line 422 of file ARMTargetParser.cpp.
References AEK_INVALID, ARCHExtNames, findDoublePrecisionFPU(), findSinglePrecisionFPU(), getDefaultFPU(), getFPURestriction(), isDoublePrecision(), parseArchExt(), and stripNegationPrefix().
|
static |
Definition at line 55 of file ARMRegisterBankInfo.cpp.
References assert(), checkPartMapping(), PartMappings, PMI_DPR, PMI_GPR, PMI_Min, and PMI_SPR.
Referenced by llvm::ARMRegisterBankInfo::ARMRegisterBankInfo().
|
static |
Definition at line 48 of file ARMRegisterBankInfo.cpp.
References llvm::RegisterBank::getID(), llvm::RegisterBankInfo::PartialMapping::Length, llvm::Length, llvm::RegisterBankInfo::PartialMapping::RegBank, and llvm::RegisterBankInfo::PartialMapping::StartIdx.
Referenced by checkPartialMappings().
|
static |
Definition at line 93 of file ARMRegisterBankInfo.cpp.
References llvm::RegisterBankInfo::ValueMapping::BreakDown, and llvm::RegisterBankInfo::ValueMapping::NumBreakDowns.
Referenced by checkValueMappings().
|
static |
Definition at line 98 of file ARMRegisterBankInfo.cpp.
References assert(), checkValueMapping(), DPR3OpsIdx, GPR3OpsIdx, PartMappings, PMI_DPR, PMI_GPR, PMI_Min, PMI_SPR, SPR3OpsIdx, and ValueMappings.
Referenced by llvm::ARMRegisterBankInfo::ARMRegisterBankInfo().
Definition at line 539 of file ARMTargetParser.cpp.
References llvm::Triple::Android, llvm::Triple::EABI, llvm::Triple::EABIHF, llvm::StringRef::empty(), getArchName(), llvm::Triple::GNUEABI, llvm::Triple::GNUEABIHF, llvm::Triple::GNUEABIHFT64, llvm::Triple::GNUEABIT64, llvm::Triple::MuslEABI, llvm::Triple::MuslEABIHF, llvm::Triple::OpenHOS, parseArchProfile(), parseCPUArch(), TT, and llvm::Triple::UnknownOS.
Referenced by computeTargetABI().
ARM::ArchKind llvm::ARM::convertV9toV8 | ( | ARM::ArchKind | AK | ) |
Definition at line 481 of file ARMTargetParser.cpp.
References getProfileKind().
FastISel * llvm::ARM::createFastISel | ( | FunctionLoweringInfo & | funcInfo, |
const TargetLibraryInfo * | libInfo | ||
) |
Definition at line 3079 of file ARMFastISel.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::FunctionLoweringInfo::MF, and llvm::ARMSubtarget::useFastISel().
Referenced by llvm::ARMTargetLowering::createFastISel().
void llvm::ARM::fillValidCPUArchList | ( | SmallVectorImpl< StringRef > & | Values | ) |
Definition at line 532 of file ARMTargetParser.cpp.
References CPUNames, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
unsigned llvm::ARM::getArchAttr | ( | ARM::ArchKind | AK | ) |
Definition at line 342 of file ARMTargetParser.cpp.
Referenced by llvm::jitlink::createLinkGraphFromELFObject_aarch32().
Definition at line 358 of file ARMTargetParser.cpp.
References ARCHExtNames, and stripNegationPrefix().
Definition at line 346 of file ARMTargetParser.cpp.
References ARCHExtNames.
StringRef llvm::ARM::getArchName | ( | ARM::ArchKind | AK | ) |
Definition at line 330 of file ARMTargetParser.cpp.
References Name.
Referenced by computeDefaultTargetABI(), and llvm::ARM_MC::ParseARMTriple().
Converts e.g. "armv8" -> "armv8-a".
Definition at line 19 of file ARMTargetParserCommon.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), and llvm::StringSwitch< T, R >::Default().
Referenced by llvm::AArch64::parseArch(), and parseArch().
StringRef llvm::ARM::getARMCPUForArch | ( | const llvm::Triple & | Triple, |
StringRef | MArch = {} |
||
) |
Get the (LLVM) name of the minimum ARM CPU for the arch we are targeting.
Arch | the architecture name (e.g., "armv7s"). If it is an empty string then the triple's arch name is used. |
Definition at line 579 of file ARMTargetParser.cpp.
References llvm::Triple::DriverKit, llvm::Triple::EABI, llvm::Triple::EABIHF, llvm::StringRef::empty(), llvm::Triple::FreeBSD, llvm::Triple::getArchName(), getCanonicalArchName(), getDefaultCPU(), llvm::Triple::getEnvironment(), llvm::Triple::getOS(), llvm::Triple::GNUEABI, llvm::Triple::GNUEABIHF, llvm::Triple::GNUEABIHFT64, llvm::Triple::Haiku, llvm::Triple::IOS, llvm_unreachable, llvm::Triple::MacOSX, llvm::Triple::MuslEABIHF, llvm::Triple::NaCl, llvm::Triple::NetBSD, llvm::Triple::OpenBSD, parseArchVersion(), llvm::Triple::TvOS, llvm::Triple::WatchOS, llvm::Triple::Win32, and llvm::Triple::XROS.
MArch is expected to be of the form (arm|thumb)?(eb)?(v.
+)?(eb)?, but (iwmmxt|xscale)(eb)? is also permitted. If the former, return "v.+", if the latter, return unmodified string, minus 'eb'. If invalid, return empty string.
Definition at line 55 of file ARMTargetParserCommon.cpp.
References A, and llvm::StringRef::npos.
Referenced by getARMCPUForArch(), llvm::AArch64::parseArch(), parseArch(), parseArchProfile(), parseArchVersion(), parseARMArch(), and parseSubArch().
StringRef llvm::ARM::getCPUAttr | ( | ARM::ArchKind | AK | ) |
Definition at line 334 of file ARMTargetParser.cpp.
Definition at line 492 of file ARMTargetParser.cpp.
References CPUNames, and parseArch().
Referenced by getARMCPUForArch().
uint64_t llvm::ARM::getDefaultExtensions | ( | StringRef | CPU, |
ARM::ArchKind | AK | ||
) |
Definition at line 282 of file ARMTargetParser.cpp.
References AEK_INVALID, ARMArchNames, and llvm::StringSwitch< T, R >::Default().
ARM::FPUKind llvm::ARM::getDefaultFPU | ( | StringRef | CPU, |
ARM::ArchKind | AK | ||
) |
Definition at line 271 of file ARMTargetParser.cpp.
References ARMArchNames, and llvm::StringSwitch< T, R >::Default().
Referenced by appendArchExtFeatures().
Definition at line 314 of file ARMTargetParser.cpp.
References AEK_INVALID, ARCHExtNames, Extensions, and getHWDivFeatures().
bool llvm::ARM::getFPUFeatures | ( | ARM::FPUKind | FPUKind, |
std::vector< StringRef > & | Features | ||
) |
Definition at line 156 of file ARMTargetParser.cpp.
StringRef llvm::ARM::getFPUName | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 253 of file ARMTargetParser.cpp.
References FK_LAST.
ARM::NeonSupportLevel llvm::ARM::getFPUNeonSupportLevel | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 230 of file ARMTargetParser.cpp.
References FK_LAST.
ARM::FPURestriction llvm::ARM::getFPURestriction | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 265 of file ARMTargetParser.cpp.
References FK_LAST.
Referenced by appendArchExtFeatures().
Definition at line 236 of file ARMTargetParser.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), and llvm::StringSwitch< T, R >::Default().
Referenced by parseFPU().
ARM::FPUVersion llvm::ARM::getFPUVersion | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 259 of file ARMTargetParser.cpp.
References FK_LAST.
Definition at line 295 of file ARMTargetParser.cpp.
References AEK_HWDIVARM, AEK_HWDIVTHUMB, and AEK_INVALID.
Referenced by getExtensionFeatures().
StringRef llvm::ARM::getSubArch | ( | ARM::ArchKind | AK | ) |
Definition at line 338 of file ARMTargetParser.cpp.
References getSubArch().
Referenced by getSubArch().
|
inline |
Definition at line 150 of file ARMTargetParser.h.
References None.
Referenced by findDoublePrecisionFPU(), and findSinglePrecisionFPU().
Definition at line 20888 of file ARMISelLowering.cpp.
References llvm::isShiftedMask_32().
Referenced by PerformORCombineToBFI().
bool llvm::ARM::isCDECoproc | ( | size_t | Coproc, |
const MCSubtargetInfo & | STI | ||
) |
Definition at line 628 of file ARMMCTargetDesc.cpp.
References llvm::MCSubtargetInfo::getFeatureBits().
|
inline |
Definition at line 146 of file ARMTargetParser.h.
References SP_D16.
Referenced by appendArchExtFeatures(), findDoublePrecisionFPU(), and findSinglePrecisionFPU().
|
inline |
Definition at line 117 of file ARMMCTargetDesc.h.
References op, OPERAND_VPRED_N, and OPERAND_VPRED_R.
Referenced by findFirstVectorPredOperandIdx(), llvm::findFirstVPTPredOperandIdx(), and isVpred().
Definition at line 120 of file ARMMCTargetDesc.h.
Definition at line 210 of file ARMTargetParser.h.
References assert().
ARM::ArchKind llvm::ARM::parseArch | ( | StringRef | Arch | ) |
Definition at line 31 of file ARMTargetParser.cpp.
References A, getArchSynonym(), and getCanonicalArchName().
Referenced by llvm::jitlink::createLinkGraphFromELFObject_aarch32(), getARMSubType(), llvm::ARM_MC::ParseARMTriple(), and parseSubArch().
ARM::EndianKind llvm::ARM::parseArchEndian | ( | StringRef | Arch | ) |
Definition at line 119 of file ARMTargetParserCommon.cpp.
References llvm::StringRef::ends_with(), and llvm::StringRef::starts_with().
Referenced by parseARMArch().
Definition at line 516 of file ARMTargetParser.cpp.
References A, AEK_INVALID, and ARCHExtNames.
Referenced by appendArchExtFeatures().
ARM::ISAKind llvm::ARM::parseArchISA | ( | StringRef | Arch | ) |
Definition at line 110 of file ARMTargetParserCommon.cpp.
References llvm::StringSwitch< T, R >::Default(), and llvm::StringSwitch< T, R >::StartsWith().
Referenced by parseARMArch().
ARM::ProfileKind llvm::ARM::parseArchProfile | ( | StringRef | Arch | ) |
Definition at line 151 of file ARMTargetParser.cpp.
References getCanonicalArchName(), getProfileKind(), and parseArch().
Referenced by computeDefaultTargetABI(), and parseARMArch().
Definition at line 42 of file ARMTargetParser.cpp.
References getCanonicalArchName(), llvm_unreachable, and parseArch().
Referenced by getARMCPUForArch(), and parseARMArch().
bool llvm::ARM::parseBranchProtection | ( | StringRef | Spec, |
ParsedBranchProtection & | PBP, | ||
StringRef & | Err, | ||
bool | EnablePAuthLR = false |
||
) |
Definition at line 142 of file ARMTargetParserCommon.cpp.
References llvm::ARM::ParsedBranchProtection::BranchProtectionPAuthLR, llvm::ARM::ParsedBranchProtection::BranchTargetEnforcement, llvm::ARM::ParsedBranchProtection::GuardedControlStack, I, llvm::ARM::ParsedBranchProtection::Key, llvm::ARM::ParsedBranchProtection::Scope, and llvm::SmallVectorBase< Size_T >::size().
ARM::ArchKind llvm::ARM::parseCPUArch | ( | StringRef | CPU | ) |
Definition at line 524 of file ARMTargetParser.cpp.
References llvm::CallingConv::C, and CPUNames.
Referenced by computeDefaultTargetABI().
ARM::FPUKind llvm::ARM::parseFPU | ( | StringRef | FPU | ) |
Definition at line 221 of file ARMTargetParser.cpp.
References F, and getFPUSynonym().
Definition at line 507 of file ARMTargetParser.cpp.
References AEK_INVALID, D, getHWDivSynonym(), and HWDivNames.
Definition at line 653 of file ARMTargetParser.cpp.
References ARCHExtNames, llvm::StringMapImpl::empty(), llvm::format(), llvm::left_justify(), and llvm::outs().
Definition at line 80 of file ARMTargetParser.h.
Referenced by appendArchExtFeatures(), getArchExtFeature(), getArchExtName(), getExtensionFeatures(), parseArchExt(), and PrintSupportedExtensions().
Definition at line 202 of file ARMTargetParser.h.
Referenced by getDefaultExtensions(), and getDefaultFPU().
Definition at line 115 of file ARMTargetParser.h.
Referenced by fillValidCPUArchList(), getDefaultCPU(), and parseCPUArch().
Definition at line 384 of file ARMISelLowering.h.
Referenced by llvm::ARMLegalizerInfo::legalizeCustom().
Definition at line 380 of file ARMISelLowering.h.
Referenced by llvm::ARMLegalizerInfo::legalizeCustom().
Definition at line 176 of file ARMTargetParser.h.
Referenced by findDoublePrecisionFPU(), and findSinglePrecisionFPU().
const struct { ... } llvm::ARM::HWDivNames[] |
Referenced by parseHWDiv().
uint64_t llvm::ARM::ID |
Definition at line 90 of file ARMTargetParser.h.
StringRef llvm::ARM::Name |
Definition at line 89 of file ARMTargetParser.h.
const RegisterBankInfo::PartialMapping llvm::ARM::PartMappings[] |
Definition at line 38 of file ARMRegisterBankInfo.cpp.
Referenced by checkPartialMappings(), and checkValueMappings().
Definition at line 376 of file ARMISelLowering.h.
const RegisterBankInfo::ValueMapping llvm::ARM::ValueMappings[] |
Definition at line 75 of file ARMRegisterBankInfo.cpp.
Referenced by checkValueMappings(), and llvm::ARMRegisterBankInfo::getInstrMapping().