LLVM 19.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
AArch64TargetParser.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Bitset.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/VersionTuple.h"
#include <array>
#include <vector>
#include "llvm/TargetParser/AArch64TargetParserDef.inc"

Go to the source code of this file.

Classes

struct  llvm::AArch64::ExtensionInfo
 
struct  llvm::AArch64::ExtensionSet
 
struct  llvm::AArch64::ExtensionDependency
 
struct  llvm::AArch64::ArchInfo
 
struct  llvm::AArch64::CpuInfo
 
struct  llvm::AArch64::Alias
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::AArch64
 

Macros

#define ARM_EXTENSION(NAME, ENUM)   ENUM,
 

Typedefs

using llvm::AArch64::ExtensionBitset = Bitset< AEK_NUM_EXTENSIONS >
 

Enumerations

enum  llvm::AArch64::CPUFeatures {
  llvm::AArch64::FEAT_RNG , llvm::AArch64::FEAT_FLAGM , llvm::AArch64::FEAT_FLAGM2 , llvm::AArch64::FEAT_FP16FML ,
  llvm::AArch64::FEAT_DOTPROD , llvm::AArch64::FEAT_SM4 , llvm::AArch64::FEAT_RDM , llvm::AArch64::FEAT_LSE ,
  llvm::AArch64::FEAT_FP , llvm::AArch64::FEAT_SIMD , llvm::AArch64::FEAT_CRC , llvm::AArch64::FEAT_SHA1 ,
  llvm::AArch64::FEAT_SHA2 , llvm::AArch64::FEAT_SHA3 , llvm::AArch64::FEAT_AES , llvm::AArch64::FEAT_PMULL ,
  llvm::AArch64::FEAT_FP16 , llvm::AArch64::FEAT_DIT , llvm::AArch64::FEAT_DPB , llvm::AArch64::FEAT_DPB2 ,
  llvm::AArch64::FEAT_JSCVT , llvm::AArch64::FEAT_FCMA , llvm::AArch64::FEAT_RCPC , llvm::AArch64::FEAT_RCPC2 ,
  llvm::AArch64::FEAT_FRINTTS , llvm::AArch64::FEAT_DGH , llvm::AArch64::FEAT_I8MM , llvm::AArch64::FEAT_BF16 ,
  llvm::AArch64::FEAT_EBF16 , llvm::AArch64::FEAT_RPRES , llvm::AArch64::FEAT_SVE , llvm::AArch64::FEAT_SVE_BF16 ,
  llvm::AArch64::FEAT_SVE_EBF16 , llvm::AArch64::FEAT_SVE_I8MM , llvm::AArch64::FEAT_SVE_F32MM , llvm::AArch64::FEAT_SVE_F64MM ,
  llvm::AArch64::FEAT_SVE2 , llvm::AArch64::FEAT_SVE_AES , llvm::AArch64::FEAT_SVE_PMULL128 , llvm::AArch64::FEAT_SVE_BITPERM ,
  llvm::AArch64::FEAT_SVE_SHA3 , llvm::AArch64::FEAT_SVE_SM4 , llvm::AArch64::FEAT_SME , llvm::AArch64::FEAT_MEMTAG ,
  llvm::AArch64::FEAT_MEMTAG2 , llvm::AArch64::FEAT_MEMTAG3 , llvm::AArch64::FEAT_SB , llvm::AArch64::FEAT_PREDRES ,
  llvm::AArch64::FEAT_SSBS , llvm::AArch64::FEAT_SSBS2 , llvm::AArch64::FEAT_BTI , llvm::AArch64::FEAT_LS64 ,
  llvm::AArch64::FEAT_LS64_V , llvm::AArch64::FEAT_LS64_ACCDATA , llvm::AArch64::FEAT_WFXT , llvm::AArch64::FEAT_SME_F64 ,
  llvm::AArch64::FEAT_SME_I64 , llvm::AArch64::FEAT_SME2 , llvm::AArch64::FEAT_RCPC3 , llvm::AArch64::FEAT_MOPS ,
  llvm::AArch64::FEAT_MAX , llvm::AArch64::FEAT_EXT = 62 , llvm::AArch64::FEAT_INIT
}
 
enum  llvm::AArch64::ArchExtKind : unsigned {
  llvm::AArch64::AEK_NONE = 1 , llvm::AArch64::AEK_NUM_EXTENSIONS , llvm::AArch64::AEK_F32MM = AEK_MATMULFP32 , llvm::AArch64::AEK_F64MM = AEK_MATMULFP64 ,
  llvm::AArch64::AEK_FCMA = AEK_COMPLXNUM , llvm::AArch64::AEK_FP = AEK_FPARMV8 , llvm::AArch64::AEK_FP16 = AEK_FULLFP16 , llvm::AArch64::AEK_I8MM = AEK_MATMULINT8 ,
  llvm::AArch64::AEK_JSCVT = AEK_JS , llvm::AArch64::AEK_PROFILE = AEK_SPE , llvm::AArch64::AEK_RASv2 = AEK_RASV2 , llvm::AArch64::AEK_RAND = AEK_RANDGEN ,
  llvm::AArch64::AEK_SIMD = AEK_NEON , llvm::AArch64::AEK_SME2p1 = AEK_SME2P1 , llvm::AArch64::AEK_SVE2p1 = AEK_SVE2P1 , llvm::AArch64::AEK_SME_LUTv2 = AEK_SME_LUTV2
}
 
enum  llvm::AArch64::ArchProfile { llvm::AArch64::AProfile = 'A' , llvm::AArch64::RProfile = 'R' , llvm::AArch64::InvalidProfile = '?' }
 

Functions

bool llvm::AArch64::getExtensionFeatures (const AArch64::ExtensionBitset &Extensions, std::vector< StringRef > &Features)
 
StringRef llvm::AArch64::getArchExtFeature (StringRef ArchExt)
 
StringRef llvm::AArch64::resolveCPUAlias (StringRef CPU)
 
StringRef llvm::AArch64::resolveExtAlias (StringRef ArchExt)
 
const ArchInfo * llvm::AArch64::getArchForCpu (StringRef CPU)
 
const ArchInfo * llvm::AArch64::parseArch (StringRef Arch)
 
std::optional< ExtensionInfo > llvm::AArch64::parseArchExtension (StringRef Extension)
 
std::optional< CpuInfo > llvm::AArch64::parseCpu (StringRef Name)
 
void llvm::AArch64::fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 
bool llvm::AArch64::isX18ReservedByDefault (const Triple &TT)
 
uint64_t llvm::AArch64::getCpuSupportsMask (ArrayRef< StringRef > FeatureStrs)
 
void llvm::AArch64::PrintSupportedExtensions (StringMap< StringRef > DescMap)
 

Variables

constexpr ExtensionInfo llvm::AArch64::Extensions []
 
constexpr ExtensionDependency llvm::AArch64::ExtensionDependencies []
 
constexpr ArchInfo llvm::AArch64::ARMV8A
 
constexpr ArchInfo llvm::AArch64::ARMV8_1A
 
constexpr ArchInfo llvm::AArch64::ARMV8_2A
 
constexpr ArchInfo llvm::AArch64::ARMV8_3A
 
constexpr ArchInfo llvm::AArch64::ARMV8_4A
 
constexpr ArchInfo llvm::AArch64::ARMV8_5A = { VersionTuple{8, 5}, AProfile, "armv8.5-a", "+v8.5a", (ARMV8_4A.DefaultExts)}
 
constexpr ArchInfo llvm::AArch64::ARMV8_6A
 
constexpr ArchInfo llvm::AArch64::ARMV8_7A = { VersionTuple{8, 7}, AProfile, "armv8.7-a", "+v8.7a", (ARMV8_6A.DefaultExts)}
 
constexpr ArchInfo llvm::AArch64::ARMV8_8A
 
constexpr ArchInfo llvm::AArch64::ARMV8_9A
 
constexpr ArchInfo llvm::AArch64::ARMV9A
 
constexpr ArchInfo llvm::AArch64::ARMV9_1A
 
constexpr ArchInfo llvm::AArch64::ARMV9_2A = { VersionTuple{9, 2}, AProfile, "armv9.2-a", "+v9.2a", (ARMV9_1A.DefaultExts)}
 
constexpr ArchInfo llvm::AArch64::ARMV9_3A
 
constexpr ArchInfo llvm::AArch64::ARMV9_4A
 
constexpr ArchInfo llvm::AArch64::ARMV9_5A
 
constexpr ArchInfo llvm::AArch64::ARMV8R
 
static constexpr std::array< const ArchInfo *, 17 > llvm::AArch64::ArchInfos
 
constexpr CpuInfo llvm::AArch64::CpuInfos []
 
constexpr Alias llvm::AArch64::CpuAliases []
 
constexpr Alias llvm::AArch64::ExtAliases [] = {{"rdma", "rdm"}}
 

Macro Definition Documentation

◆ ARM_EXTENSION

#define ARM_EXTENSION (   NAME,
  ENUM 
)    ENUM,

Definition at line 109 of file AArch64TargetParser.h.