LLVM 22.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 |
Typedefs | |
using | Specifier = uint16_t |
Variables | |
constexpr ExtName | ARCHExtNames [] |
struct { | |
StringRef llvm::ARM::Name | |
uint64_t llvm::ARM::ID | |
} | HWDivNames [] |
constexpr CpuNames | CPUNames [] |
static constexpr FPUName | FPUNames [] |
static constexpr 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.
using llvm::ARM::Specifier = uint16_t |
Definition at line 92 of file ARMMCAsmInfo.h.
anonymous enum |
Definition at line 93 of file ARMMCAsmInfo.h.
enum llvm::ARM::ArchExtKind : uint64_t |
Definition at line 39 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
ARM_FPU |
Definition at line 106 of file ARMTargetParser.h.
enum llvm::ARM::ARMABI |
Enumerator | |
---|---|
ARM_ABI_UNKNOWN | |
ARM_ABI_APCS | |
ARM_ABI_AAPCS | |
ARM_ABI_AAPCS16 |
Definition at line 30 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 24 of file ARMTargetParserCommon.h.
enum llvm::ARM::Fixups |
Definition at line 16 of file ARMFixupKinds.h.
enum llvm::ARM::FPUKind |
Enumerator | |
---|---|
ARM_FPU | |
ARM_FPU |
Definition at line 131 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 149 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
NONE | |
VFPV2 | |
VFPV3 | |
VFPV3_FP16 | |
VFPV4 | |
VFPV5 | |
VFPV5_FULLFP16 |
Definition at line 138 of file ARMTargetParser.h.
|
strong |
Enumerator | |
---|---|
INVALID | |
ARM | |
THUMB | |
AARCH64 |
Definition at line 22 of file ARMTargetParserCommon.h.
|
strong |
Enumerator | |
---|---|
None | No Neon. |
Neon | Neon. |
Crypto | Neon with Crypto. |
Definition at line 164 of file ARMTargetParser.h.
Enumerator | |
---|---|
OPERAND_VPRED_R | |
OPERAND_VPRED_N |
Definition at line 114 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 171 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 370 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 421 of file ARMTargetParser.cpp.
References AEK_INVALID, ARCHExtNames, findDoublePrecisionFPU(), findSinglePrecisionFPU(), getDefaultFPU(), getFPURestriction(), ID, 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::Length, llvm::RegisterBankInfo::PartialMapping::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 538 of file ARMTargetParser.cpp.
References llvm::Triple::Android, llvm::Triple::EABI, llvm::Triple::EABIHF, llvm::Triple::GNUEABI, llvm::Triple::GNUEABIHF, llvm::Triple::GNUEABIHFT64, llvm::Triple::GNUEABIT64, M, llvm::Triple::MuslEABI, llvm::Triple::MuslEABIHF, llvm::Triple::OpenHOS, parseArchProfile(), TT, and llvm::Triple::UnknownOS.
Referenced by computeTargetABI().
ARM::ARMABI llvm::ARM::computeTargetABI | ( | const Triple & | TT, |
StringRef | ABIName = "" ) |
Definition at line 577 of file ARMTargetParser.cpp.
References ARM_ABI_AAPCS, ARM_ABI_AAPCS16, ARM_ABI_APCS, ARM_ABI_UNKNOWN, computeDefaultTargetABI(), llvm::StringRef::empty(), llvm::StringRef::starts_with(), and TT.
Referenced by computeARMDataLayout().
ARM::ArchKind llvm::ARM::convertV9toV8 | ( | ARM::ArchKind | AK | ) |
Definition at line 480 of file ARMTargetParser.cpp.
References A, and getProfileKind().
FastISel * llvm::ARM::createFastISel | ( | FunctionLoweringInfo & | funcInfo, |
const TargetLibraryInfo * | libInfo ) |
Definition at line 3153 of file ARMFastISel.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::FunctionLoweringInfo::MF, and llvm::ARMSubtarget::useFastISel().
Referenced by llvm::ARMTargetLowering::createFastISel().
const MCSpecifierExpr * llvm::ARM::createLower0_7 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 215 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_LO_0_7.
const MCSpecifierExpr * llvm::ARM::createLower16 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 197 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_LO16.
Referenced by llvm::ARMAsmPrinter::emitInstruction().
const MCSpecifierExpr * llvm::ARM::createLower8_15 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 210 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_LO_8_15.
const MCSpecifierExpr * llvm::ARM::createUpper0_7 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 206 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_HI_0_7.
const MCSpecifierExpr * llvm::ARM::createUpper16 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 193 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_HI16.
Referenced by llvm::ARMAsmPrinter::emitInstruction().
const MCSpecifierExpr * llvm::ARM::createUpper8_15 | ( | const MCExpr * | Expr, |
MCContext & | Ctx ) |
Definition at line 201 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::create(), and S_HI_8_15.
void llvm::ARM::fillValidCPUArchList | ( | SmallVectorImpl< StringRef > & | Values | ) |
Definition at line 531 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.
References ARMArchNames.
Referenced by llvm::jitlink::createLinkGraphFromELFObject_aarch32(), and llvm::jitlink::ELFJITLinker_aarch32::JITLinker< ELFJITLinker_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 ARMArchNames, and Name.
Referenced by 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 593 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::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.
References ARMArchNames.
Definition at line 491 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.
References Crypto, D16, FPUNames, Neon, None, SP_D16, VFPV2, VFPV3, VFPV3_FP16, VFPV4, VFPV5, and VFPV5_FULLFP16.
StringRef llvm::ARM::getFPUName | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 253 of file ARMTargetParser.cpp.
References FPUNames.
ARM::NeonSupportLevel llvm::ARM::getFPUNeonSupportLevel | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 230 of file ARMTargetParser.cpp.
ARM::FPURestriction llvm::ARM::getFPURestriction | ( | ARM::FPUKind | FPUKind | ) |
Definition at line 265 of file ARMTargetParser.cpp.
References FPUNames, and None.
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.
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 ARMArchNames, and getSubArch().
Referenced by getSubArch().
|
inline |
Definition at line 159 of file ARMTargetParser.h.
References None.
Referenced by findDoublePrecisionFPU().
Definition at line 20864 of file ARMISelLowering.cpp.
References llvm::isShiftedMask_32().
Referenced by PerformORCombineToBFI().
bool llvm::ARM::isCDECoproc | ( | size_t | Coproc, |
const MCSubtargetInfo & | STI ) |
Definition at line 759 of file ARMMCTargetDesc.cpp.
References llvm::MCSubtargetInfo::getFeatureBits().
|
inline |
Definition at line 155 of file ARMTargetParser.h.
References SP_D16.
Referenced by appendArchExtFeatures(), findDoublePrecisionFPU(), and findSinglePrecisionFPU().
|
inline |
Definition at line 118 of file ARMMCTargetDesc.h.
References op, OPERAND_VPRED_N, and OPERAND_VPRED_R.
Referenced by findFirstVectorPredOperandIdx(), llvm::findFirstVPTPredOperandIdx(), and isVpred().
Definition at line 121 of file ARMMCTargetDesc.h.
Definition at line 219 of file ARMTargetParser.h.
References assert().
ARM::ArchKind llvm::ARM::parseArch | ( | StringRef | Arch | ) |
Definition at line 31 of file ARMTargetParser.cpp.
References A, ARMArchNames, getArchSynonym(), and getCanonicalArchName().
Referenced by llvm::jitlink::createLinkGraphFromELFObject_aarch32(), getARMSubType(), llvm::jitlink::ELFJITLinker_aarch32::JITLinker< ELFJITLinker_aarch32 >, llvm::ARM_MC::ParseARMTriple(), and parseSubArch().
ARM::EndianKind llvm::ARM::parseArchEndian | ( | StringRef | Arch | ) |
Definition at line 119 of file ARMTargetParserCommon.cpp.
References BIG, llvm::StringRef::ends_with(), INVALID, LITTLE, and llvm::StringRef::starts_with().
Referenced by parseARMArch().
Definition at line 515 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 AARCH64, ARM, llvm::StringSwitch< T, R >::Default(), INVALID, llvm::StringSwitch< T, R >::StartsWith(), and THUMB.
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::SmallVectorTemplateCommon< T, typename >::size().
ARM::ArchKind llvm::ARM::parseCPUArch | ( | StringRef | CPU | ) |
Definition at line 523 of file ARMTargetParser.cpp.
References llvm::CallingConv::C, and CPUNames.
ARM::FPUKind llvm::ARM::parseFPU | ( | StringRef | FPU | ) |
Definition at line 221 of file ARMTargetParser.cpp.
References F, FPUNames, and getFPUSynonym().
Definition at line 506 of file ARMTargetParser.cpp.
References AEK_INVALID, D(), getHWDivSynonym(), and HWDivNames.
void llvm::ARM::printSpecifierExpr | ( | const MCAsmInfo & | MAI, |
raw_ostream & | OS, | ||
const MCSpecifierExpr & | Expr ) |
Definition at line 160 of file ARMMCAsmInfo.cpp.
References llvm::MCSpecifierExpr::getSpecifier(), llvm::MCSpecifierExpr::getSubExpr(), llvm_unreachable, llvm::MCAsmInfo::printExpr(), S_HI16, S_HI_0_7, S_HI_8_15, S_LO16, S_LO_0_7, S_LO_8_15, llvm::Sub, and llvm::MCExpr::SymbolRef.
Referenced by llvm::ARMCOFFMCAsmInfoGNU::printSpecifierExpr(), llvm::ARMCOFFMCAsmInfoMicrosoft::printSpecifierExpr(), llvm::ARMELFMCAsmInfo::printSpecifierExpr(), and llvm::ARMMCAsmInfoDarwin::printSpecifierExpr().
Definition at line 666 of file ARMTargetParser.cpp.
References ARCHExtNames, llvm::StringMapImpl::empty(), llvm::format(), llvm::left_justify(), and llvm::outs().
|
constexpr |
Definition at line 89 of file ARMTargetParser.h.
Referenced by appendArchExtFeatures(), getArchExtFeature(), getArchExtName(), getExtensionFeatures(), parseArchExt(), and PrintSupportedExtensions().
|
staticconstexpr |
Definition at line 211 of file ARMTargetParser.h.
Referenced by getArchAttr(), getArchName(), getCPUAttr(), getDefaultExtensions(), getDefaultFPU(), getSubArch(), and parseArch().
|
constexpr |
Definition at line 124 of file ARMTargetParser.h.
Referenced by fillValidCPUArchList(), getDefaultCPU(), and parseCPUArch().
Definition at line 387 of file ARMISelLowering.h.
Referenced by llvm::ARMLegalizerInfo::legalizeCustom().
Definition at line 383 of file ARMISelLowering.h.
Referenced by llvm::ARMLegalizerInfo::legalizeCustom().
|
staticconstexpr |
Definition at line 185 of file ARMTargetParser.h.
Referenced by findDoublePrecisionFPU(), findSinglePrecisionFPU(), getFPUFeatures(), getFPUName(), getFPUNeonSupportLevel(), getFPURestriction(), getFPUVersion(), and parseFPU().
struct { ... } llvm::ARM::HWDivNames[] |
Referenced by parseHWDiv().
uint64_t llvm::ARM::ID |
Definition at line 99 of file ARMTargetParser.h.
Referenced by appendArchExtFeatures().
StringRef llvm::ARM::Name |
Definition at line 98 of file ARMTargetParser.h.
Referenced by getArchName().
const RegisterBankInfo::PartialMapping llvm::ARM::PartMappings[] |
Definition at line 38 of file ARMRegisterBankInfo.cpp.
Referenced by checkPartialMappings(), and checkValueMappings().
Definition at line 379 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().