LLVM 19.0.0git
Classes | Typedefs | Enumerations | Functions | Variables
llvm::AArch64 Namespace Reference

Classes

struct  Alias
 
struct  ArchInfo
 
struct  CpuInfo
 
struct  ExtensionDependency
 
struct  ExtensionInfo
 
struct  ExtensionSet
 

Typedefs

using ExtensionBitset = Bitset< AEK_NUM_EXTENSIONS >
 

Enumerations

enum  CPUFeatures {
  FEAT_RNG , FEAT_FLAGM , FEAT_FLAGM2 , FEAT_FP16FML ,
  FEAT_DOTPROD , FEAT_SM4 , FEAT_RDM , FEAT_LSE ,
  FEAT_FP , FEAT_SIMD , FEAT_CRC , FEAT_SHA1 ,
  FEAT_SHA2 , FEAT_SHA3 , FEAT_AES , FEAT_PMULL ,
  FEAT_FP16 , FEAT_DIT , FEAT_DPB , FEAT_DPB2 ,
  FEAT_JSCVT , FEAT_FCMA , FEAT_RCPC , FEAT_RCPC2 ,
  FEAT_FRINTTS , FEAT_DGH , FEAT_I8MM , FEAT_BF16 ,
  FEAT_EBF16 , FEAT_RPRES , FEAT_SVE , FEAT_SVE_BF16 ,
  FEAT_SVE_EBF16 , FEAT_SVE_I8MM , FEAT_SVE_F32MM , FEAT_SVE_F64MM ,
  FEAT_SVE2 , FEAT_SVE_AES , FEAT_SVE_PMULL128 , FEAT_SVE_BITPERM ,
  FEAT_SVE_SHA3 , FEAT_SVE_SM4 , FEAT_SME , FEAT_MEMTAG ,
  FEAT_MEMTAG2 , FEAT_MEMTAG3 , FEAT_SB , FEAT_PREDRES ,
  FEAT_SSBS , FEAT_SSBS2 , FEAT_BTI , FEAT_LS64 ,
  FEAT_LS64_V , FEAT_LS64_ACCDATA , FEAT_WFXT , FEAT_SME_F64 ,
  FEAT_SME_I64 , FEAT_SME2 , FEAT_RCPC3 , FEAT_MOPS ,
  FEAT_MAX , FEAT_EXT = 62 , FEAT_INIT
}
 
enum  ArchExtKind : unsigned {
  AEK_NONE = 1 , AEK_NUM_EXTENSIONS , AEK_F32MM = AEK_MATMULFP32 , AEK_F64MM = AEK_MATMULFP64 ,
  AEK_FCMA = AEK_COMPLXNUM , AEK_FP = AEK_FPARMV8 , AEK_FP16 = AEK_FULLFP16 , AEK_I8MM = AEK_MATMULINT8 ,
  AEK_JSCVT = AEK_JS , AEK_PROFILE = AEK_SPE , AEK_RASv2 = AEK_RASV2 , AEK_RAND = AEK_RANDGEN ,
  AEK_SIMD = AEK_NEON , AEK_SME2p1 = AEK_SME2P1 , AEK_SVE2p1 = AEK_SVE2P1 , AEK_SME_LUTv2 = AEK_SME_LUTV2
}
 
enum  ArchProfile { AProfile = 'A' , RProfile = 'R' , InvalidProfile = '?' }
 
enum  ElementSizeType {
  ElementSizeMask = TSFLAG_ELEMENT_SIZE_TYPE(0x7) , ElementSizeNone = TSFLAG_ELEMENT_SIZE_TYPE(0x0) , ElementSizeB = TSFLAG_ELEMENT_SIZE_TYPE(0x1) , ElementSizeH = TSFLAG_ELEMENT_SIZE_TYPE(0x2) ,
  ElementSizeS = TSFLAG_ELEMENT_SIZE_TYPE(0x3) , ElementSizeD = TSFLAG_ELEMENT_SIZE_TYPE(0x4)
}
 
enum  DestructiveInstType {
  DestructiveInstTypeMask = TSFLAG_DESTRUCTIVE_INST_TYPE(0xf) , NotDestructive = TSFLAG_DESTRUCTIVE_INST_TYPE(0x0) , DestructiveOther = TSFLAG_DESTRUCTIVE_INST_TYPE(0x1) , DestructiveUnary = TSFLAG_DESTRUCTIVE_INST_TYPE(0x2) ,
  DestructiveBinaryImm = TSFLAG_DESTRUCTIVE_INST_TYPE(0x3) , DestructiveBinaryShImmUnpred = TSFLAG_DESTRUCTIVE_INST_TYPE(0x4) , DestructiveBinary = TSFLAG_DESTRUCTIVE_INST_TYPE(0x5) , DestructiveBinaryComm = TSFLAG_DESTRUCTIVE_INST_TYPE(0x6) ,
  DestructiveBinaryCommWithRev = TSFLAG_DESTRUCTIVE_INST_TYPE(0x7) , DestructiveTernaryCommWithRev = TSFLAG_DESTRUCTIVE_INST_TYPE(0x8) , DestructiveUnaryPassthru = TSFLAG_DESTRUCTIVE_INST_TYPE(0x9)
}
 
enum  FalseLaneType { FalseLanesMask = TSFLAG_FALSE_LANE_TYPE(0x3) , FalseLanesZero = TSFLAG_FALSE_LANE_TYPE(0x1) , FalseLanesUndef = TSFLAG_FALSE_LANE_TYPE(0x2) }
 
enum  SMEMatrixType {
  SMEMatrixTypeMask = TSFLAG_SME_MATRIX_TYPE(0x7) , SMEMatrixNone = TSFLAG_SME_MATRIX_TYPE(0x0) , SMEMatrixTileB = TSFLAG_SME_MATRIX_TYPE(0x1) , SMEMatrixTileH = TSFLAG_SME_MATRIX_TYPE(0x2) ,
  SMEMatrixTileS = TSFLAG_SME_MATRIX_TYPE(0x3) , SMEMatrixTileD = TSFLAG_SME_MATRIX_TYPE(0x4) , SMEMatrixTileQ = TSFLAG_SME_MATRIX_TYPE(0x5) , SMEMatrixArray = TSFLAG_SME_MATRIX_TYPE(0x6)
}
 
enum  Rounding {
  RN = 0 , RP = 1 , RM = 2 , RZ = 3 ,
  rmMask = 3
}
 Possible values of current rounding mode, which is specified in bits 23:22 of FPCR. More...
 
enum  Fixups {
  fixup_aarch64_pcrel_adr_imm21 = FirstTargetFixupKind , fixup_aarch64_pcrel_adrp_imm21 , fixup_aarch64_add_imm12 , fixup_aarch64_ldst_imm12_scale1 ,
  fixup_aarch64_ldst_imm12_scale2 , fixup_aarch64_ldst_imm12_scale4 , fixup_aarch64_ldst_imm12_scale8 , fixup_aarch64_ldst_imm12_scale16 ,
  fixup_aarch64_ldr_pcrel_imm19 , fixup_aarch64_movw , fixup_aarch64_pcrel_branch14 , fixup_aarch64_pcrel_branch16 ,
  fixup_aarch64_pcrel_branch19 , fixup_aarch64_pcrel_branch26 , fixup_aarch64_pcrel_call26 , LastTargetFixupKind ,
  NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
}
 
enum  OperandType { OPERAND_IMPLICIT_IMM_0 = MCOI::OPERAND_FIRST_TARGET }
 

Functions

bool getExtensionFeatures (const AArch64::ExtensionBitset &Extensions, std::vector< StringRef > &Features)
 
StringRef getArchExtFeature (StringRef ArchExt)
 
StringRef resolveCPUAlias (StringRef CPU)
 
StringRef resolveExtAlias (StringRef ArchExt)
 
const ArchInfogetArchForCpu (StringRef CPU)
 
const ArchInfoparseArch (StringRef Arch)
 
std::optional< ExtensionInfoparseArchExtension (StringRef Extension)
 
std::optional< CpuInfoparseCpu (StringRef Name)
 
void fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 
bool isX18ReservedByDefault (const Triple &TT)
 
uint64_t getCpuSupportsMask (ArrayRef< StringRef > FeatureStrs)
 
void PrintSupportedExtensions (StringMap< StringRef > DescMap)
 
int getSVEPseudoMap (uint16_t Opcode)
 
int getSVERevInstr (uint16_t Opcode)
 
int getSVENonRevInstr (uint16_t Opcode)
 
int getSMEPseudoMap (uint16_t Opcode)
 
ArrayRef< MCPhysReggetGPRArgRegs ()
 
ArrayRef< MCPhysReggetFPRArgRegs ()
 
FastISelcreateFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 

Variables

constexpr ExtensionInfo Extensions []
 
constexpr ExtensionDependency ExtensionDependencies []
 
constexpr ArchInfo ARMV8A
 
constexpr ArchInfo ARMV8_1A
 
constexpr ArchInfo ARMV8_2A
 
constexpr ArchInfo ARMV8_3A
 
constexpr ArchInfo ARMV8_4A
 
constexpr ArchInfo ARMV8_5A = { VersionTuple{8, 5}, AProfile, "armv8.5-a", "+v8.5a", (ARMV8_4A.DefaultExts)}
 
constexpr ArchInfo ARMV8_6A
 
constexpr ArchInfo ARMV8_7A = { VersionTuple{8, 7}, AProfile, "armv8.7-a", "+v8.7a", (ARMV8_6A.DefaultExts)}
 
constexpr ArchInfo ARMV8_8A
 
constexpr ArchInfo ARMV8_9A
 
constexpr ArchInfo ARMV9A
 
constexpr ArchInfo ARMV9_1A
 
constexpr ArchInfo ARMV9_2A = { VersionTuple{9, 2}, AProfile, "armv9.2-a", "+v9.2a", (ARMV9_1A.DefaultExts)}
 
constexpr ArchInfo ARMV9_3A
 
constexpr ArchInfo ARMV9_4A
 
constexpr ArchInfo ARMV9_5A
 
constexpr ArchInfo ARMV8R
 
static constexpr std::array< const ArchInfo *, 17 > ArchInfos
 
constexpr CpuInfo CpuInfos []
 
constexpr Alias CpuAliases []
 
constexpr Alias ExtAliases [] = {{"rdma", "rdm"}}
 
static const uint64_t InstrFlagIsWhile = TSFLAG_INSTR_FLAGS(0x1)
 
static const uint64_t InstrFlagIsPTestLike = TSFLAG_INSTR_FLAGS(0x2)
 
const unsigned RoundingBitsPos = 22
 
const uint64_t ReservedFPControlBits = 0xfffffffff80040f8
 
const unsigned StackProbeMaxUnprobedStack = 1024
 Maximum allowed number of unprobed bytes above SP at an ABI boundary.
 
const unsigned StackProbeMaxLoopUnroll = 4
 Maximum number of iterations to unroll for a constant size probing loop.
 
static constexpr unsigned SVEBitsPerBlock = 128
 
static constexpr unsigned SVEMaxBitsPerVector = 2048
 

Typedef Documentation

◆ ExtensionBitset

Definition at line 130 of file AArch64TargetParser.h.

Enumeration Type Documentation

◆ ArchExtKind

Enumerator
AEK_NONE 
AEK_NUM_EXTENSIONS 
AEK_F32MM 
AEK_F64MM 
AEK_FCMA 
AEK_FP 
AEK_FP16 
AEK_I8MM 
AEK_JSCVT 
AEK_PROFILE 
AEK_RASv2 
AEK_RAND 
AEK_SIMD 
AEK_SME2p1 
AEK_SVE2p1 
AEK_SME_LUTv2 

Definition at line 107 of file AArch64TargetParser.h.

◆ ArchProfile

Enumerator
AProfile 
RProfile 
InvalidProfile 

Definition at line 358 of file AArch64TargetParser.h.

◆ CPUFeatures

Enumerator
FEAT_RNG 
FEAT_FLAGM 
FEAT_FLAGM2 
FEAT_FP16FML 
FEAT_DOTPROD 
FEAT_SM4 
FEAT_RDM 
FEAT_LSE 
FEAT_FP 
FEAT_SIMD 
FEAT_CRC 
FEAT_SHA1 
FEAT_SHA2 
FEAT_SHA3 
FEAT_AES 
FEAT_PMULL 
FEAT_FP16 
FEAT_DIT 
FEAT_DPB 
FEAT_DPB2 
FEAT_JSCVT 
FEAT_FCMA 
FEAT_RCPC 
FEAT_RCPC2 
FEAT_FRINTTS 
FEAT_DGH 
FEAT_I8MM 
FEAT_BF16 
FEAT_EBF16 
FEAT_RPRES 
FEAT_SVE 
FEAT_SVE_BF16 
FEAT_SVE_EBF16 
FEAT_SVE_I8MM 
FEAT_SVE_F32MM 
FEAT_SVE_F64MM 
FEAT_SVE2 
FEAT_SVE_AES 
FEAT_SVE_PMULL128 
FEAT_SVE_BITPERM 
FEAT_SVE_SHA3 
FEAT_SVE_SM4 
FEAT_SME 
FEAT_MEMTAG 
FEAT_MEMTAG2 
FEAT_MEMTAG3 
FEAT_SB 
FEAT_PREDRES 
FEAT_SSBS 
FEAT_SSBS2 
FEAT_BTI 
FEAT_LS64 
FEAT_LS64_V 
FEAT_LS64_ACCDATA 
FEAT_WFXT 
FEAT_SME_F64 
FEAT_SME_I64 
FEAT_SME2 
FEAT_RCPC3 
FEAT_MOPS 
FEAT_MAX 
FEAT_EXT 
FEAT_INIT 

Definition at line 37 of file AArch64TargetParser.h.

◆ DestructiveInstType

Enumerator
DestructiveInstTypeMask 
NotDestructive 
DestructiveOther 
DestructiveUnary 
DestructiveBinaryImm 
DestructiveBinaryShImmUnpred 
DestructiveBinary 
DestructiveBinaryComm 
DestructiveBinaryCommWithRev 
DestructiveTernaryCommWithRev 
DestructiveUnaryPassthru 

Definition at line 763 of file AArch64InstrInfo.h.

◆ ElementSizeType

Enumerator
ElementSizeMask 
ElementSizeNone 
ElementSizeB 
ElementSizeH 
ElementSizeS 
ElementSizeD 

Definition at line 754 of file AArch64InstrInfo.h.

◆ FalseLaneType

Enumerator
FalseLanesMask 
FalseLanesZero 
FalseLanesUndef 

Definition at line 777 of file AArch64InstrInfo.h.

◆ Fixups

Enumerator
fixup_aarch64_pcrel_adr_imm21 
fixup_aarch64_pcrel_adrp_imm21 
fixup_aarch64_add_imm12 
fixup_aarch64_ldst_imm12_scale1 
fixup_aarch64_ldst_imm12_scale2 
fixup_aarch64_ldst_imm12_scale4 
fixup_aarch64_ldst_imm12_scale8 
fixup_aarch64_ldst_imm12_scale16 
fixup_aarch64_ldr_pcrel_imm19 
fixup_aarch64_movw 
fixup_aarch64_pcrel_branch14 
fixup_aarch64_pcrel_branch16 
fixup_aarch64_pcrel_branch19 
fixup_aarch64_pcrel_branch26 
fixup_aarch64_pcrel_call26 
LastTargetFixupKind 
NumTargetFixupKinds 

Definition at line 17 of file AArch64FixupKinds.h.

◆ OperandType

Enumerator
OPERAND_IMPLICIT_IMM_0 

Definition at line 72 of file AArch64MCTargetDesc.h.

◆ Rounding

Possible values of current rounding mode, which is specified in bits 23:22 of FPCR.

Enumerator
RN 
RP 
RM 
RZ 
rmMask 

Definition at line 515 of file AArch64ISelLowering.h.

◆ SMEMatrixType

Enumerator
SMEMatrixTypeMask 
SMEMatrixNone 
SMEMatrixTileB 
SMEMatrixTileH 
SMEMatrixTileS 
SMEMatrixTileD 
SMEMatrixTileQ 
SMEMatrixArray 

Definition at line 787 of file AArch64InstrInfo.h.

Function Documentation

◆ createFastISel()

FastISel * llvm::AArch64::createFastISel ( FunctionLoweringInfo funcInfo,
const TargetLibraryInfo libInfo 
)

◆ fillValidCPUArchList()

void llvm::AArch64::fillValidCPUArchList ( SmallVectorImpl< StringRef > &  Values)

◆ getArchExtFeature()

StringRef llvm::AArch64::getArchExtFeature ( StringRef  ArchExt)

◆ getArchForCpu()

const AArch64::ArchInfo * llvm::AArch64::getArchForCpu ( StringRef  CPU)

Definition at line 32 of file AArch64TargetParser.cpp.

References ARMV8A, and parseCpu().

◆ getCpuSupportsMask()

uint64_t llvm::AArch64::getCpuSupportsMask ( ArrayRef< StringRef FeatureStrs)

Definition at line 50 of file AArch64TargetParser.cpp.

References parseArchExtension().

◆ getExtensionFeatures()

bool llvm::AArch64::getExtensionFeatures ( const AArch64::ExtensionBitset Extensions,
std::vector< StringRef > &  Features 
)

Definition at line 59 of file AArch64TargetParser.cpp.

References Extensions, and llvm::Bitset< NumBits >::test().

◆ getFPRArgRegs()

ArrayRef< MCPhysReg > llvm::AArch64::getFPRArgRegs ( )

Definition at line 160 of file AArch64ISelLowering.cpp.

References FPRArgRegs.

◆ getGPRArgRegs()

ArrayRef< MCPhysReg > llvm::AArch64::getGPRArgRegs ( )

Definition at line 158 of file AArch64ISelLowering.cpp.

References GPRArgRegs.

◆ getSMEPseudoMap()

int llvm::AArch64::getSMEPseudoMap ( uint16_t  Opcode)

◆ getSVENonRevInstr()

int llvm::AArch64::getSVENonRevInstr ( uint16_t  Opcode)

◆ getSVEPseudoMap()

int llvm::AArch64::getSVEPseudoMap ( uint16_t  Opcode)

◆ getSVERevInstr()

int llvm::AArch64::getSVERevInstr ( uint16_t  Opcode)

◆ isX18ReservedByDefault()

bool llvm::AArch64::isX18ReservedByDefault ( const Triple TT)

Definition at line 104 of file AArch64TargetParser.cpp.

Referenced by llvm::AArch64Subtarget::AArch64Subtarget().

◆ parseArch()

const AArch64::ArchInfo * llvm::AArch64::parseArch ( StringRef  Arch)

◆ parseArchExtension()

std::optional< AArch64::ExtensionInfo > llvm::AArch64::parseArchExtension ( StringRef  Extension)

◆ parseCpu()

std::optional< AArch64::CpuInfo > llvm::AArch64::parseCpu ( StringRef  Name)

Definition at line 135 of file AArch64TargetParser.cpp.

References llvm::CallingConv::C, CpuInfos, Name, and resolveCPUAlias().

Referenced by getArchForCpu().

◆ PrintSupportedExtensions()

void llvm::AArch64::PrintSupportedExtensions ( StringMap< StringRef DescMap)

◆ resolveCPUAlias()

StringRef llvm::AArch64::resolveCPUAlias ( StringRef  CPU)

Definition at line 70 of file AArch64TargetParser.cpp.

References A, CpuAliases, and Name.

Referenced by parseCpu().

◆ resolveExtAlias()

StringRef llvm::AArch64::resolveExtAlias ( StringRef  ArchExt)

Definition at line 77 of file AArch64TargetParser.cpp.

References A, ExtAliases, and Name.

Referenced by parseArchExtension().

Variable Documentation

◆ ArchInfos

constexpr std::array<const ArchInfo *, 17> llvm::AArch64::ArchInfos
staticconstexpr
Initial value:
= {
}
constexpr ArchInfo ARMV8_9A
constexpr ArchInfo ARMV8_3A
constexpr ArchInfo ARMV8_7A
constexpr ArchInfo ARMV8R
constexpr ArchInfo ARMV8_4A
constexpr ArchInfo ARMV9_3A
constexpr ArchInfo ARMV8_6A
constexpr ArchInfo ARMV8_5A
constexpr ArchInfo ARMV8A
constexpr ArchInfo ARMV9_1A
constexpr ArchInfo ARMV9A
constexpr ArchInfo ARMV9_2A
constexpr ArchInfo ARMV9_4A
constexpr ArchInfo ARMV9_5A
constexpr ArchInfo ARMV8_8A
constexpr ArchInfo ARMV8_1A
constexpr ArchInfo ARMV8_2A

Definition at line 451 of file AArch64TargetParser.h.

Referenced by llvm::AArch64::ArchInfo::findBySubArch(), and parseArch().

◆ ARMV8_1A

constexpr ArchInfo llvm::AArch64::ARMV8_1A
inlineconstexpr
Initial value:
= { VersionTuple{8, 1}, AProfile, "armv8.1-a", "+v8.1a", (ARMV8A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_LSE, AArch64::AEK_RDM}))}
AArch64::ExtensionBitset DefaultExts

Definition at line 417 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_2A

constexpr ArchInfo llvm::AArch64::ARMV8_2A
inlineconstexpr
Initial value:
= { VersionTuple{8, 2}, AProfile, "armv8.2-a", "+v8.2a", (ARMV8_1A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_RAS}))}

Definition at line 419 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_3A

constexpr ArchInfo llvm::AArch64::ARMV8_3A
inlineconstexpr
Initial value:
= { VersionTuple{8, 3}, AProfile, "armv8.3-a", "+v8.3a", (ARMV8_2A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_FCMA, AArch64::AEK_JSCVT, AArch64::AEK_PAUTH, AArch64::AEK_RCPC}))}

Definition at line 421 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_4A

constexpr ArchInfo llvm::AArch64::ARMV8_4A
inlineconstexpr
Initial value:
= { VersionTuple{8, 4}, AProfile, "armv8.4-a", "+v8.4a", (ARMV8_3A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_DOTPROD}))}

Definition at line 423 of file AArch64TargetParser.h.

Referenced by llvm::AArch64::ExtensionSet::enable(), and ExpandCryptoAEK().

◆ ARMV8_5A

constexpr ArchInfo llvm::AArch64::ARMV8_5A = { VersionTuple{8, 5}, AProfile, "armv8.5-a", "+v8.5a", (ARMV8_4A.DefaultExts)}
inlineconstexpr

Definition at line 425 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_6A

constexpr ArchInfo llvm::AArch64::ARMV8_6A
inlineconstexpr
Initial value:
= { VersionTuple{8, 6}, AProfile, "armv8.6-a", "+v8.6a", (ARMV8_5A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_BF16, AArch64::AEK_I8MM}))}

Definition at line 426 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_7A

constexpr ArchInfo llvm::AArch64::ARMV8_7A = { VersionTuple{8, 7}, AProfile, "armv8.7-a", "+v8.7a", (ARMV8_6A.DefaultExts)}
inlineconstexpr

Definition at line 428 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_8A

constexpr ArchInfo llvm::AArch64::ARMV8_8A
inlineconstexpr
Initial value:
= { VersionTuple{8, 8}, AProfile, "armv8.8-a", "+v8.8a", (ARMV8_7A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))}

Definition at line 429 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8_9A

constexpr ArchInfo llvm::AArch64::ARMV8_9A
inlineconstexpr
Initial value:
= { VersionTuple{8, 9}, AProfile, "armv8.9-a", "+v8.9a", (ARMV8_8A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, AArch64::AEK_RASv2}))}

Definition at line 431 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV8A

constexpr ArchInfo llvm::AArch64::ARMV8A
inlineconstexpr
Initial value:
= { VersionTuple{8, 0}, AProfile, "armv8-a", "+v8a", (
AArch64::ExtensionBitset({AArch64::AEK_FP, AArch64::AEK_SIMD})), }

Definition at line 415 of file AArch64TargetParser.h.

Referenced by getArchForCpu().

◆ ARMV8R

constexpr ArchInfo llvm::AArch64::ARMV8R
inlineconstexpr
Initial value:
= { VersionTuple{8, 0}, RProfile, "armv8-r", "+v8r", (ARMV8_5A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_SSBS,
AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_SB}).flip(AArch64::AEK_LSE))}

Definition at line 445 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV9_1A

constexpr ArchInfo llvm::AArch64::ARMV9_1A
inlineconstexpr
Initial value:
= { VersionTuple{9, 1}, AProfile, "armv9.1-a", "+v9.1a", (ARMV9A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_BF16, AArch64::AEK_I8MM}))}

Definition at line 435 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV9_2A

constexpr ArchInfo llvm::AArch64::ARMV9_2A = { VersionTuple{9, 2}, AProfile, "armv9.2-a", "+v9.2a", (ARMV9_1A.DefaultExts)}
inlineconstexpr

Definition at line 437 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV9_3A

constexpr ArchInfo llvm::AArch64::ARMV9_3A
inlineconstexpr
Initial value:
= { VersionTuple{9, 3}, AProfile, "armv9.3-a", "+v9.3a", (ARMV9_2A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_MOPS, AArch64::AEK_HBC}))}

Definition at line 438 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV9_4A

constexpr ArchInfo llvm::AArch64::ARMV9_4A
inlineconstexpr
Initial value:
= { VersionTuple{9, 4}, AProfile, "armv9.4-a", "+v9.4a", (ARMV9_3A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_SPECRES2, AArch64::AEK_CSSC, AArch64::AEK_RASv2}))}

Definition at line 440 of file AArch64TargetParser.h.

Referenced by ExpandCryptoAEK().

◆ ARMV9_5A

constexpr ArchInfo llvm::AArch64::ARMV9_5A
inlineconstexpr
Initial value:
= { VersionTuple{9, 5}, AProfile, "armv9.5-a", "+v9.5a", (ARMV9_4A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_CPA}))}

Definition at line 442 of file AArch64TargetParser.h.

◆ ARMV9A

constexpr ArchInfo llvm::AArch64::ARMV9A
inlineconstexpr
Initial value:
= { VersionTuple{9, 0}, AProfile, "armv9-a", "+v9a", (ARMV8_5A.DefaultExts |
AArch64::ExtensionBitset({AArch64::AEK_FP16, AArch64::AEK_SVE, AArch64::AEK_SVE2}))}

Definition at line 433 of file AArch64TargetParser.h.

Referenced by llvm::AArch64::ExtensionSet::enable(), and ExpandCryptoAEK().

◆ CpuAliases

constexpr Alias llvm::AArch64::CpuAliases[]
inlineconstexpr
Initial value:
= {{"cobalt-100", "neoverse-n2"},
{"grace", "neoverse-v2"}}

Definition at line 797 of file AArch64TargetParser.h.

Referenced by fillValidCPUArchList(), and resolveCPUAlias().

◆ CpuInfos

constexpr CpuInfo llvm::AArch64::CpuInfos[]
inlineconstexpr

Definition at line 473 of file AArch64TargetParser.h.

Referenced by fillValidCPUArchList(), and parseCpu().

◆ ExtAliases

constexpr Alias llvm::AArch64::ExtAliases[] = {{"rdma", "rdm"}}
inlineconstexpr

Definition at line 800 of file AArch64TargetParser.h.

Referenced by resolveExtAlias().

◆ ExtensionDependencies

constexpr ExtensionDependency llvm::AArch64::ExtensionDependencies[]
inlineconstexpr

◆ Extensions

constexpr ExtensionInfo llvm::AArch64::Extensions[]
inlineconstexpr

◆ InstrFlagIsPTestLike

const uint64_t llvm::AArch64::InstrFlagIsPTestLike = TSFLAG_INSTR_FLAGS(0x2)
static

Definition at line 785 of file AArch64InstrInfo.h.

Referenced by llvm::AArch64InstrInfo::isPTestLikeOpcode().

◆ InstrFlagIsWhile

const uint64_t llvm::AArch64::InstrFlagIsWhile = TSFLAG_INSTR_FLAGS(0x1)
static

Definition at line 784 of file AArch64InstrInfo.h.

Referenced by llvm::AArch64InstrInfo::isWhileOpcode().

◆ ReservedFPControlBits

const uint64_t llvm::AArch64::ReservedFPControlBits = 0xfffffffff80040f8

Definition at line 527 of file AArch64ISelLowering.h.

◆ RoundingBitsPos

const unsigned llvm::AArch64::RoundingBitsPos = 22

Definition at line 524 of file AArch64ISelLowering.h.

◆ StackProbeMaxLoopUnroll

const unsigned llvm::AArch64::StackProbeMaxLoopUnroll = 4

Maximum number of iterations to unroll for a constant size probing loop.

Definition at line 538 of file AArch64ISelLowering.h.

◆ StackProbeMaxUnprobedStack

const unsigned llvm::AArch64::StackProbeMaxUnprobedStack = 1024

Maximum allowed number of unprobed bytes above SP at an ABI boundary.

Definition at line 535 of file AArch64ISelLowering.h.

Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr().

◆ SVEBitsPerBlock

constexpr unsigned llvm::AArch64::SVEBitsPerBlock = 128
staticconstexpr

◆ SVEMaxBitsPerVector

constexpr unsigned llvm::AArch64::SVEMaxBitsPerVector = 2048
staticconstexpr

Definition at line 866 of file AArch64BaseInfo.h.