LLVM  14.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
AArch64TargetParser.h File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ARMTargetParser.h"
#include <vector>
#include "AArch64TargetParser.def"
Include dependency graph for AArch64TargetParser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::AArch64::ParsedBranchProtection
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::AArch64
 

Macros

#define AARCH64_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT)   ID,
 
#define AARCH64_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT)
 
#define AARCH64_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE)   {NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE},
 
#define AARCH64_CPU_NAME(NAME, ID, DEFAULT_FPU, IS_DEFAULT, DEFAULT_EXT)   {NAME, sizeof(NAME) - 1, AArch64::ArchKind::ID, IS_DEFAULT, DEFAULT_EXT},
 
#define AARCH64_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, ARCH_BASE_EXT)   ArchKind::ID,
 

Enumerations

enum  llvm::AArch64::ArchExtKind : uint64_t {
  llvm::AArch64::AEK_INVALID = 0, llvm::AArch64::AEK_NONE = 1, llvm::AArch64::AEK_CRC = 1 << 1, llvm::AArch64::AEK_CRYPTO = 1 << 2,
  llvm::AArch64::AEK_FP = 1 << 3, llvm::AArch64::AEK_SIMD = 1 << 4, llvm::AArch64::AEK_FP16 = 1 << 5, llvm::AArch64::AEK_PROFILE = 1 << 6,
  llvm::AArch64::AEK_RAS = 1 << 7, llvm::AArch64::AEK_LSE = 1 << 8, llvm::AArch64::AEK_SVE = 1 << 9, llvm::AArch64::AEK_DOTPROD = 1 << 10,
  llvm::AArch64::AEK_RCPC = 1 << 11, llvm::AArch64::AEK_RDM = 1 << 12, llvm::AArch64::AEK_SM4 = 1 << 13, llvm::AArch64::AEK_SHA3 = 1 << 14,
  llvm::AArch64::AEK_SHA2 = 1 << 15, llvm::AArch64::AEK_AES = 1 << 16, llvm::AArch64::AEK_FP16FML = 1 << 17, llvm::AArch64::AEK_RAND = 1 << 18,
  llvm::AArch64::AEK_MTE = 1 << 19, llvm::AArch64::AEK_SSBS = 1 << 20, llvm::AArch64::AEK_SB = 1 << 21, llvm::AArch64::AEK_PREDRES = 1 << 22,
  llvm::AArch64::AEK_SVE2 = 1 << 23, llvm::AArch64::AEK_SVE2AES = 1 << 24, llvm::AArch64::AEK_SVE2SM4 = 1 << 25, llvm::AArch64::AEK_SVE2SHA3 = 1 << 26,
  llvm::AArch64::AEK_SVE2BITPERM = 1 << 27, llvm::AArch64::AEK_TME = 1 << 28, llvm::AArch64::AEK_BF16 = 1 << 29, llvm::AArch64::AEK_I8MM = 1 << 30,
  llvm::AArch64::AEK_F32MM = 1ULL << 31, llvm::AArch64::AEK_F64MM = 1ULL << 32, llvm::AArch64::AEK_LS64 = 1ULL << 33, llvm::AArch64::AEK_BRBE = 1ULL << 34,
  llvm::AArch64::AEK_PAUTH = 1ULL << 35, llvm::AArch64::AEK_FLAGM = 1ULL << 36, llvm::AArch64::AEK_SME = 1ULL << 37, llvm::AArch64::AEK_SMEF64 = 1ULL << 38,
  llvm::AArch64::AEK_SMEI64 = 1ULL << 39
}
 
enum  llvm::AArch64::ArchKind { llvm::AArch64::ArchKind::AARCH64_ARCH }
 

Functions

bool llvm::AArch64::getExtensionFeatures (uint64_t Extensions, std::vector< StringRef > &Features)
 
bool llvm::AArch64::getArchFeatures (ArchKind AK, std::vector< StringRef > &Features)
 
StringRef llvm::AArch64::getArchName (ArchKind AK)
 
unsigned llvm::AArch64::getArchAttr (ArchKind AK)
 
StringRef llvm::AArch64::getCPUAttr (ArchKind AK)
 
StringRef llvm::AArch64::getSubArch (ArchKind AK)
 
StringRef llvm::AArch64::getArchExtName (unsigned ArchExtKind)
 
StringRef llvm::AArch64::getArchExtFeature (StringRef ArchExt)
 
unsigned llvm::AArch64::getDefaultFPU (StringRef CPU, ArchKind AK)
 
uint64_t llvm::AArch64::getDefaultExtensions (StringRef CPU, ArchKind AK)
 
StringRef llvm::AArch64::getDefaultCPU (StringRef Arch)
 
ArchKind llvm::AArch64::getCPUArchKind (StringRef CPU)
 
ArchKind llvm::AArch64::parseArch (StringRef Arch)
 
ArchExtKind llvm::AArch64::parseArchExt (StringRef ArchExt)
 
ArchKind llvm::AArch64::parseCPUArch (StringRef CPU)
 
void llvm::AArch64::fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 
bool llvm::AArch64::isX18ReservedByDefault (const Triple &TT)
 
bool llvm::AArch64::parseBranchProtection (StringRef Spec, ParsedBranchProtection &PBP, StringRef &Err)
 

Variables

const ARM::ArchNames< ArchKind > llvm::AArch64::AArch64ARCHNames []
 
const ARM::ExtName llvm::AArch64::AArch64ARCHExtNames []
 
const ARM::CpuNames< ArchKind > llvm::AArch64::AArch64CPUNames []
 
const ArchKind llvm::AArch64::ArchKinds []
 

Macro Definition Documentation

◆ AARCH64_ARCH [1/3]

#define AARCH64_ARCH (   NAME,
  ID,
  CPU_ATTR,
  SUB_ARCH,
  ARCH_ATTR,
  ARCH_FPU,
  ARCH_BASE_EXT 
)    ID,

Definition at line 75 of file AArch64TargetParser.h.

◆ AARCH64_ARCH [2/3]

#define AARCH64_ARCH (   NAME,
  ID,
  CPU_ATTR,
  SUB_ARCH,
  ARCH_ATTR,
  ARCH_FPU,
  ARCH_BASE_EXT 
)
Value:
{NAME, \
sizeof(NAME) - 1, \
CPU_ATTR, \
sizeof(CPU_ATTR) - 1, \
SUB_ARCH, \
sizeof(SUB_ARCH) - 1, \
ARM::FPUKind::ARCH_FPU, \
ARCH_BASE_EXT, \
ARCH_ATTR},

Definition at line 75 of file AArch64TargetParser.h.

◆ AARCH64_ARCH [3/3]

#define AARCH64_ARCH (   NAME,
  ID,
  CPU_ATTR,
  SUB_ARCH,
  ARCH_ATTR,
  ARCH_FPU,
  ARCH_BASE_EXT 
)    ArchKind::ID,

Definition at line 75 of file AArch64TargetParser.h.

◆ AARCH64_ARCH_EXT_NAME

#define AARCH64_ARCH_EXT_NAME (   NAME,
  ID,
  FEATURE,
  NEGFEATURE 
)    {NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE},

◆ AARCH64_CPU_NAME

#define AARCH64_CPU_NAME (   NAME,
  ID,
  DEFAULT_FPU,
  IS_DEFAULT,
  DEFAULT_EXT 
)    {NAME, sizeof(NAME) - 1, AArch64::ArchKind::ID, IS_DEFAULT, DEFAULT_EXT},
llvm::Intrinsic::ID
unsigned ID
Definition: TargetTransformInfo.h:37