LLVM: llvm::ARM Namespace Reference (original) (raw)
Define some predicates that are used for node matching. More...
| Classes | |
|---|---|
| struct | ArchNames |
| struct | CpuNames |
| struct | ExtName |
| struct | FPUName |
| struct | ParsedBranchProtection |
| 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.
◆ Specifier
◆ anonymous enum
| Enumerator |
|---|
| S_None |
| S_COFF_SECREL |
| S_HI16 |
| S_LO16 |
| S_HI_8_15 |
| S_HI_0_7 |
| S_LO_8_15 |
| S_LO_0_7 |
| S_ARM_NONE |
| S_FUNCDESC |
| S_GOT |
| S_GOTFUNCDESC |
| S_GOTOFF |
| S_GOTOFFFUNCDESC |
| S_GOTTPOFF |
| S_GOTTPOFF_FDPIC |
| S_GOT_PREL |
| S_PLT |
| S_PREL31 |
| S_SBREL |
| S_TARGET1 |
| S_TARGET2 |
| S_TLSCALL |
| S_TLSDESC |
| S_TLSDESCSEQ |
| S_TLSGD |
| S_TLSGD_FDPIC |
| S_TLSLDM |
| S_TLSLDM_FDPIC |
| S_TLSLDO |
| S_TPOFF |
Definition at line 93 of file ARMMCAsmInfo.h.
◆ ArchExtKind
| Enumerator |
|---|
| AEK_INVALID |
| AEK_NONE |
| AEK_CRC |
| AEK_CRYPTO |
| AEK_FP |
| AEK_HWDIVTHUMB |
| AEK_HWDIVARM |
| AEK_MP |
| AEK_SIMD |
| AEK_SEC |
| AEK_VIRT |
| AEK_DSP |
| AEK_FP16 |
| AEK_RAS |
| AEK_DOTPROD |
| AEK_SHA2 |
| AEK_AES |
| AEK_FP16FML |
| AEK_SB |
| AEK_FP_DP |
| AEK_LOB |
| AEK_BF16 |
| AEK_I8MM |
| AEK_CDECP0 |
| AEK_CDECP1 |
| AEK_CDECP2 |
| AEK_CDECP3 |
| AEK_CDECP4 |
| AEK_CDECP5 |
| AEK_CDECP6 |
| AEK_CDECP7 |
| AEK_PACBTI |
| AEK_MVE |
| AEK_OS |
| AEK_IWMMXT |
| AEK_IWMMXT2 |
| AEK_MAVERICK |
| AEK_XSCALE |
Definition at line 39 of file ARMTargetParser.h.
◆ ArchKind
| enum class llvm::ARM::ArchKind | strong |
|---|
◆ ARMABI
| Enumerator |
|---|
| ARM_ABI_UNKNOWN |
| ARM_ABI_APCS |
| ARM_ABI_AAPCS |
| ARM_ABI_AAPCS16 |
Definition at line 30 of file ARMTargetParser.h.
◆ DW_ISA
| Enumerator |
|---|
| DW_ISA_ARM_thumb |
| DW_ISA_ARM_arm |
Definition at line 25 of file ARMAsmPrinter.h.
◆ EndianKind
| enum class llvm::ARM::EndianKind | strong |
|---|
◆ Fixups
| Enumerator |
|---|
| fixup_arm_ldst_pcrel_12 |
| fixup_t2_ldst_pcrel_12 |
| fixup_arm_pcrel_10_unscaled |
| fixup_arm_pcrel_10 |
| fixup_t2_pcrel_10 |
| fixup_arm_pcrel_9 |
| fixup_t2_pcrel_9 |
| fixup_arm_ldst_abs_12 |
| fixup_thumb_adr_pcrel_10 |
| fixup_arm_adr_pcrel_12 |
| fixup_t2_adr_pcrel_12 |
| fixup_arm_condbranch |
| fixup_arm_uncondbranch |
| fixup_t2_condbranch |
| fixup_t2_uncondbranch |
| fixup_arm_thumb_br |
| fixup_arm_uncondbl |
| fixup_arm_condbl |
| fixup_arm_blx |
| fixup_arm_thumb_bl |
| fixup_arm_thumb_blx |
| fixup_arm_thumb_cb |
| fixup_arm_thumb_cp |
| fixup_arm_thumb_bcc |
| fixup_arm_movt_hi16 |
| fixup_arm_movw_lo16 |
| fixup_t2_movt_hi16 |
| fixup_t2_movw_lo16 |
| fixup_arm_thumb_upper_8_15 |
| fixup_arm_thumb_upper_0_7 |
| fixup_arm_thumb_lower_8_15 |
| fixup_arm_thumb_lower_0_7 |
| fixup_arm_mod_imm |
| fixup_t2_so_imm |
| fixup_bf_branch |
| fixup_bf_target |
| fixup_bfl_target |
| fixup_bfc_target |
| fixup_bfcsel_else_target |
| fixup_wls |
| fixup_le |
| LastTargetFixupKind |
| NumTargetFixupKinds |
Definition at line 16 of file ARMFixupKinds.h.
◆ FPUKind
◆ FPURestriction
| 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.
◆ FPUVersion
| enum class llvm::ARM::FPUVersion | strong |
|---|
| Enumerator |
|---|
| NONE |
| VFPV2 |
| VFPV3 |
| VFPV3_FP16 |
| VFPV4 |
| VFPV5 |
| VFPV5_FULLFP16 |
Definition at line 138 of file ARMTargetParser.h.
◆ ISAKind
| enum class llvm::ARM::ISAKind | strong |
|---|
◆ NeonSupportLevel
| Enumerator | |
|---|---|
| None | No Neon. |
| Neon | Neon. |
| Crypto | Neon with Crypto. |
Definition at line 164 of file ARMTargetParser.h.
◆ OperandType
◆ PartialMappingIdx
◆ PredBlockMask
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.
◆ ProfileKind
| enum class llvm::ARM::ProfileKind | strong |
|---|
◆ 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 57 of file ARMISelLowering.h.
◆ ValueMappingIdx
◆ appendArchExtFeatures()
◆ checkPartialMappings()
| void llvm::ARM::checkPartialMappings ( ) | static |
|---|
◆ checkPartMapping()
◆ checkValueMapping()
◆ checkValueMappings()
| void llvm::ARM::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().
◆ computeDefaultTargetABI()
Definition at line 540 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().
◆ computeTargetABI()
◆ convertV9toV8()
| ARM::ArchKind llvm::ARM::convertV9toV8 | ( | ARM::ArchKind | AK | ) |
|---|
◆ createFastISel()
◆ createLower0_7()
◆ createLower16()
◆ createLower8_15()
◆ createUpper0_7()
◆ createUpper16()
◆ createUpper8_15()
◆ fillValidCPUArchList()
◆ getArchAttr()
◆ getArchExtFeature()
◆ getArchExtName()
◆ getArchName()
◆ getArchSynonym()
◆ getARMCPUForArch()
Get the (LLVM) name of the minimum ARM CPU for the arch we are targeting.
Parameters
| Arch | the architecture name (e.g., "armv7s"). If it is an empty string then the triple's arch name is used. |
|---|
Definition at line 595 of file ARMTargetParser.cpp.
References llvm::Triple::DriverKit, llvm::Triple::EABI, llvm::Triple::EABIHF, llvm::StringRef::empty(), llvm::Triple::FreeBSD, llvm::Triple::Fuchsia, 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.
◆ getCanonicalArchName()
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 56 of file ARMTargetParserCommon.cpp.
References A, and llvm::StringRef::npos.
Referenced by getARMCPUForArch(), llvm::AArch64::parseArch(), parseArch(), parseArchProfile(), parseArchVersion(), parseARMArch(), and parseSubArch().
◆ getCPUAttr()
◆ getDefaultCPU()
◆ getDefaultExtensions()
◆ getDefaultFPU()
◆ getExtensionFeatures()
◆ getFPUFeatures()
| bool llvm::ARM::getFPUFeatures | ( | ARM::FPUKind | FPUKind, |
|---|---|---|---|
| std::vector< StringRef > & | Features ) |
Definition at line 158 of file ARMTargetParser.cpp.
References Crypto, D16, FPUNames, Neon, None, SP_D16, VFPV2, VFPV3, VFPV3_FP16, VFPV4, VFPV5, and VFPV5_FULLFP16.
◆ getFPUName()
◆ getFPUNeonSupportLevel()
| ARM::NeonSupportLevel llvm::ARM::getFPUNeonSupportLevel | ( | ARM::FPUKind | FPUKind | ) |
|---|
◆ getFPURestriction()
| ARM::FPURestriction llvm::ARM::getFPURestriction | ( | ARM::FPUKind | FPUKind | ) |
|---|
◆ getFPUSynonym()
◆ getFPUVersion()
| ARM::FPUVersion llvm::ARM::getFPUVersion | ( | ARM::FPUKind | FPUKind | ) |
|---|
◆ getHWDivFeatures()
◆ getSubArch()
◆ has32Regs()
| bool llvm::ARM::has32Regs ( const FPURestriction restriction) | inline |
|---|
◆ isBitFieldInvertedMask()
◆ isCDECoproc()
◆ isDoublePrecision()
| bool llvm::ARM::isDoublePrecision ( const FPURestriction restriction) | inline |
|---|
◆ isVpred() [1/2]
| bool llvm::ARM::isVpred ( OperandType op) | inline |
|---|
◆ isVpred() [2/2]
◆ operator--()
| ArchKind & llvm::ARM::operator-- ( ArchKind & Kind) | inline |
|---|
◆ parseArch()
◆ parseArchEndian()
◆ parseArchExt()
◆ parseArchISA()
◆ parseArchProfile()
◆ parseArchVersion()
◆ parseBranchProtection()
◆ parseCPUArch()
◆ parseFPU()
◆ parseHWDiv()
◆ printSpecifierExpr()
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().
◆ PrintSupportedExtensions()
◆ ARCHExtNames
◆ ARMArchNames
Initial value:
= {
#define ARM_ARCH(NAME, ID, CPU_ATTR, ARCH_FEATURE, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT)
\
\
}
Definition at line 211 of file ARMTargetParser.h.
Referenced by getArchAttr(), getArchName(), getCPUAttr(), getDefaultExtensions(), getDefaultFPU(), getSubArch(), and parseArch().
◆ CPUNames
◆ FPReservedBits
◆ FPStatusBits
◆ FPUNames
Initial value:
= {
#define ARM_FPU(NAME, KIND, VERSION, NEON_SUPPORT, RESTRICTION) \
}
Definition at line 185 of file ARMTargetParser.h.
Referenced by findDoublePrecisionFPU(), findSinglePrecisionFPU(), getFPUFeatures(), getFPUName(), getFPUNeonSupportLevel(), getFPURestriction(), getFPUVersion(), and parseFPU().
◆ [struct]
struct { ... } llvm::ARM::HWDivNames[]
◆ ID
◆ Name
◆ PartMappings
Initial value:
{
{0, 32, GPRRegBank},
{0, 32, FPRRegBank},
{0, 64, FPRRegBank},
}
Definition at line 38 of file ARMRegisterBankInfo.cpp.
Referenced by checkPartialMappings(), and checkValueMappings().
◆ RoundingBitsPos
◆ ValueMappings
Initial value:
= {
{nullptr, 0},
{&PartMappings[PMI_GPR - PMI_Min], 1},
{&PartMappings[PMI_GPR - PMI_Min], 1},
{&PartMappings[PMI_GPR - PMI_Min], 1},
{&PartMappings[PMI_SPR - PMI_Min], 1},
{&PartMappings[PMI_SPR - PMI_Min], 1},
{&PartMappings[PMI_SPR - PMI_Min], 1},
{&PartMappings[PMI_DPR - PMI_Min], 1},
{&PartMappings[PMI_DPR - PMI_Min], 1},
{&PartMappings[PMI_DPR - PMI_Min], 1}}
const RegisterBankInfo::PartialMapping PartMappings[]
Definition at line 75 of file ARMRegisterBankInfo.cpp.
Referenced by checkValueMappings(), and llvm::ARMRegisterBankInfo::getInstrMapping().