LLVM  9.0.0svn
Enumerations | Functions | Variables
llvm::AArch64 Namespace Reference

Enumerations

enum  ArchExtKind : unsigned {
  AEK_INVALID = 0, AEK_NONE = 1, AEK_CRC = 1 << 1, AEK_CRYPTO = 1 << 2,
  AEK_FP = 1 << 3, AEK_SIMD = 1 << 4, AEK_FP16 = 1 << 5, AEK_PROFILE = 1 << 6,
  AEK_RAS = 1 << 7, AEK_LSE = 1 << 8, AEK_SVE = 1 << 9, AEK_DOTPROD = 1 << 10,
  AEK_RCPC = 1 << 11, AEK_RDM = 1 << 12, AEK_SM4 = 1 << 13, AEK_SHA3 = 1 << 14,
  AEK_SHA2 = 1 << 15, AEK_AES = 1 << 16, AEK_FP16FML = 1 << 17, AEK_RAND = 1 << 18,
  AEK_MTE = 1 << 19, AEK_SSBS = 1 << 20, AEK_SB = 1 << 21, AEK_PREDRES = 1 << 22,
  AEK_SVE2 = 1 << 23, AEK_SVE2AES = 1 << 24, AEK_SVE2SM4 = 1 << 25, AEK_SVE2SHA3 = 1 << 26,
  AEK_BITPERM = 1 << 27
}
 
enum  ArchKind { ArchKind::AARCH64_ARCH, ArchKind::AARCH64_ARCH }
 
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(0x1), NotDestructive = TSFLAG_DESTRUCTIVE_INST_TYPE(0x0), Destructive = TSFLAG_DESTRUCTIVE_INST_TYPE(0x1) }
 
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_branch19,
  fixup_aarch64_pcrel_branch26, fixup_aarch64_pcrel_call26, fixup_aarch64_tlsdesc_call, LastTargetFixupKind,
  NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
}
 

Functions

bool getExtensionFeatures (unsigned Extensions, std::vector< StringRef > &Features)
 
bool getArchFeatures (ArchKind AK, std::vector< StringRef > &Features)
 
StringRef getArchName (ArchKind AK)
 
unsigned getArchAttr (ArchKind AK)
 
StringRef getCPUAttr (ArchKind AK)
 
StringRef getSubArch (ArchKind AK)
 
StringRef getArchExtName (unsigned ArchExtKind)
 
StringRef getArchExtFeature (StringRef ArchExt)
 
unsigned getDefaultFPU (StringRef CPU, ArchKind AK)
 
unsigned getDefaultExtensions (StringRef CPU, ArchKind AK)
 
StringRef getDefaultCPU (StringRef Arch)
 
ArchKind getCPUArchKind (StringRef CPU)
 
ArchKind parseArch (StringRef Arch)
 
ArchExtKind parseArchExt (StringRef ArchExt)
 
ArchKind parseCPUArch (StringRef CPU)
 
void fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 
bool isX18ReservedByDefault (const Triple &TT)
 
FastISelcreateFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 

Variables

const ARM::ArchNames< ArchKindAArch64ARCHNames []
 
const ARM::ExtName AArch64ARCHExtNames []
 
const ARM::CpuNames< ArchKindAArch64CPUNames []
 
const ArchKind ArchKinds []
 

Enumeration Type Documentation

◆ ArchExtKind

Enumerator
AEK_INVALID 
AEK_NONE 
AEK_CRC 
AEK_CRYPTO 
AEK_FP 
AEK_SIMD 
AEK_FP16 
AEK_PROFILE 
AEK_RAS 
AEK_LSE 
AEK_SVE 
AEK_DOTPROD 
AEK_RCPC 
AEK_RDM 
AEK_SM4 
AEK_SHA3 
AEK_SHA2 
AEK_AES 
AEK_FP16FML 
AEK_RAND 
AEK_MTE 
AEK_SSBS 
AEK_SB 
AEK_PREDRES 
AEK_SVE2 
AEK_SVE2AES 
AEK_SVE2SM4 
AEK_SVE2SHA3 
AEK_BITPERM 

Definition at line 27 of file AArch64TargetParser.h.

◆ ArchKind

Enumerator
AARCH64_ARCH 
AARCH64_ARCH 

Definition at line 59 of file AArch64TargetParser.h.

◆ DestructiveInstType

Enumerator
DestructiveInstTypeMask 
NotDestructive 
Destructive 

Definition at line 379 of file AArch64InstrInfo.h.

◆ ElementSizeType

Enumerator
ElementSizeMask 
ElementSizeNone 
ElementSizeB 
ElementSizeH 
ElementSizeS 
ElementSizeD 

Definition at line 370 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_branch19 
fixup_aarch64_pcrel_branch26 
fixup_aarch64_pcrel_call26 
fixup_aarch64_tlsdesc_call 
LastTargetFixupKind 
NumTargetFixupKinds 

Definition at line 17 of file AArch64FixupKinds.h.

Function Documentation

◆ createFastISel()

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

◆ fillValidCPUArchList()

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

◆ getArchAttr()

unsigned llvm::AArch64::getArchAttr ( AArch64::ArchKind  AK)

Definition at line 135 of file AArch64TargetParser.cpp.

References AArch64ARCHNames.

◆ getArchExtFeature()

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

◆ getArchExtName()

StringRef llvm::AArch64::getArchExtName ( unsigned  ArchExtKind)

Definition at line 139 of file AArch64TargetParser.cpp.

References AArch64ARCHExtNames.

◆ getArchFeatures()

bool llvm::AArch64::getArchFeatures ( AArch64::ArchKind  AK,
std::vector< StringRef > &  Features 
)

Definition at line 107 of file AArch64TargetParser.cpp.

Referenced by ExpandCryptoAEK().

◆ getArchName()

StringRef llvm::AArch64::getArchName ( AArch64::ArchKind  AK)

Definition at line 123 of file AArch64TargetParser.cpp.

References AArch64ARCHNames, and getName().

Referenced by llvm::ARM::computeDefaultTargetABI().

◆ getCPUArchKind()

AArch64::ArchKind llvm::AArch64::getCPUArchKind ( StringRef  CPU)

Definition at line 51 of file AArch64TargetParser.cpp.

References AARCH64_CPU_NAME.

Referenced by incrementLoc().

◆ getCPUAttr()

StringRef llvm::AArch64::getCPUAttr ( AArch64::ArchKind  AK)

Definition at line 127 of file AArch64TargetParser.cpp.

References AArch64ARCHNames.

Referenced by llvm::ARM::getCPUAttr().

◆ getDefaultCPU()

StringRef llvm::AArch64::getDefaultCPU ( StringRef  Arch)

Definition at line 161 of file AArch64TargetParser.cpp.

References AArch64CPUNames, and parseArch().

◆ getDefaultExtensions()

unsigned llvm::AArch64::getDefaultExtensions ( StringRef  CPU,
AArch64::ArchKind  AK 
)

Definition at line 38 of file AArch64TargetParser.cpp.

References AARCH64_CPU_NAME, AArch64ARCHNames, and AEK_INVALID.

Referenced by ExpandCryptoAEK().

◆ getDefaultFPU()

unsigned llvm::AArch64::getDefaultFPU ( StringRef  CPU,
AArch64::ArchKind  AK 
)

Definition at line 27 of file AArch64TargetParser.cpp.

References AARCH64_CPU_NAME, and AArch64ARCHNames.

Referenced by llvm::ARM::appendArchExtFeatures().

◆ getExtensionFeatures()

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

◆ getSubArch()

StringRef llvm::AArch64::getSubArch ( AArch64::ArchKind  AK)

Definition at line 131 of file AArch64TargetParser.cpp.

References AArch64ARCHNames.

Referenced by llvm::ARM::getSubArch().

◆ isX18ReservedByDefault()

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

◆ parseArch()

AArch64::ArchKind llvm::AArch64::parseArch ( StringRef  Arch)

◆ parseArchExt()

AArch64::ArchExtKind llvm::AArch64::parseArchExt ( StringRef  ArchExt)

Definition at line 201 of file AArch64TargetParser.cpp.

References AArch64ARCHExtNames, and AEK_INVALID.

◆ parseCPUArch()

AArch64::ArchKind llvm::AArch64::parseCPUArch ( StringRef  CPU)

Definition at line 209 of file AArch64TargetParser.cpp.

References AArch64CPUNames, C, and llvm::Value::getName().

Referenced by llvm::ARM::computeDefaultTargetABI().

Variable Documentation

◆ AArch64ARCHExtNames

const ARM::ExtName llvm::AArch64::AArch64ARCHExtNames[]

Definition at line 80 of file AArch64TargetParser.h.

Referenced by getArchExtFeature(), getArchExtName(), and parseArchExt().

◆ AArch64ARCHNames

const ARM::ArchNames<ArchKind> llvm::AArch64::AArch64ARCHNames[]

◆ AArch64CPUNames

const ARM::CpuNames<ArchKind> llvm::AArch64::AArch64CPUNames[]

Definition at line 86 of file AArch64TargetParser.h.

Referenced by fillValidCPUArchList(), getDefaultCPU(), and parseCPUArch().

◆ ArchKinds

const ArchKind llvm::AArch64::ArchKinds[]

Definition at line 92 of file AArch64TargetParser.h.