LLVM 22.0.0git
AArch64TargetParser.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Bitset.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include <array>
#include <set>
#include <vector>
#include "llvm/TargetParser/AArch64CPUFeatures.inc"
#include "llvm/TargetParser/AArch64FeatPriorities.inc"
#include "llvm/TargetParser/AArch64TargetParserDef.inc"

Go to the source code of this file.

Classes

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

Namespaces

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

Macros

#define AARCH64_CPU_FEATURS_INC_H
#define AARCH64_FEAT_PRIORITIES_INC_H
#define EMIT_ARCHEXTKIND_ENUM
#define EMIT_EXTENSIONS
#define EMIT_EXTENSION_DEPENDENCIES
#define EMIT_ARCHITECTURES
#define EMIT_CPU_INFO
#define EMIT_CPU_ALIAS

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_CSSC ,
  llvm::AArch64::FEAT_SHA2 , llvm::AArch64::FEAT_SHA3 , llvm::AArch64::RESERVED_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::RESERVED_FEAT_DGH , llvm::AArch64::FEAT_I8MM , llvm::AArch64::FEAT_BF16 ,
  llvm::AArch64::RESERVED_FEAT_EBF16 , llvm::AArch64::RESERVED_FEAT_RPRES , llvm::AArch64::FEAT_SVE , llvm::AArch64::RESERVED_FEAT_SVE_BF16 ,
  llvm::AArch64::RESERVED_FEAT_SVE_EBF16 , llvm::AArch64::RESERVED_FEAT_SVE_I8MM , llvm::AArch64::FEAT_SVE_F32MM , llvm::AArch64::FEAT_SVE_F64MM ,
  llvm::AArch64::FEAT_SVE2 , llvm::AArch64::RESERVED_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::RESERVED_FEAT_MEMTAG ,
  llvm::AArch64::FEAT_MEMTAG2 , llvm::AArch64::RESERVED_FEAT_MEMTAG3 , llvm::AArch64::FEAT_SB , llvm::AArch64::RESERVED_FEAT_PREDRES ,
  llvm::AArch64::RESERVED_FEAT_SSBS , llvm::AArch64::FEAT_SSBS2 , llvm::AArch64::FEAT_BTI , llvm::AArch64::RESERVED_FEAT_LS64 ,
  llvm::AArch64::RESERVED_FEAT_LS64_V , llvm::AArch64::RESERVED_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::FeatPriorities {
  llvm::AArch64::PRIOR_RNG , llvm::AArch64::PRIOR_FLAGM , llvm::AArch64::PRIOR_FLAGM2 , llvm::AArch64::PRIOR_LSE ,
  llvm::AArch64::PRIOR_FP , llvm::AArch64::PRIOR_SIMD , llvm::AArch64::PRIOR_DOTPROD , llvm::AArch64::PRIOR_SM4 ,
  llvm::AArch64::PRIOR_RDM , llvm::AArch64::PRIOR_CRC , llvm::AArch64::PRIOR_SHA2 , llvm::AArch64::PRIOR_SHA3 ,
  llvm::AArch64::PRIOR_PMULL , llvm::AArch64::PRIOR_FP16 , llvm::AArch64::PRIOR_FP16FML , llvm::AArch64::PRIOR_DIT ,
  llvm::AArch64::PRIOR_DPB , llvm::AArch64::PRIOR_DPB2 , llvm::AArch64::PRIOR_JSCVT , llvm::AArch64::PRIOR_FCMA ,
  llvm::AArch64::PRIOR_RCPC , llvm::AArch64::PRIOR_RCPC2 , llvm::AArch64::PRIOR_RCPC3 , llvm::AArch64::PRIOR_FRINTTS ,
  llvm::AArch64::PRIOR_I8MM , llvm::AArch64::PRIOR_BF16 , llvm::AArch64::PRIOR_SVE , llvm::AArch64::PRIOR_SVE_F32MM ,
  llvm::AArch64::PRIOR_SVE_F64MM , llvm::AArch64::PRIOR_SVE2 , llvm::AArch64::PRIOR_SVE_PMULL128 , llvm::AArch64::PRIOR_SVE_BITPERM ,
  llvm::AArch64::PRIOR_SVE_SHA3 , llvm::AArch64::PRIOR_SVE_SM4 , llvm::AArch64::PRIOR_SME , llvm::AArch64::PRIOR_MEMTAG2 ,
  llvm::AArch64::PRIOR_SB , llvm::AArch64::PRIOR_SSBS2 , llvm::AArch64::PRIOR_BTI , llvm::AArch64::PRIOR_WFXT ,
  llvm::AArch64::PRIOR_SME_F64 , llvm::AArch64::PRIOR_SME_I64 , llvm::AArch64::PRIOR_SME2 , llvm::AArch64::PRIOR_MOPS ,
  llvm::AArch64::PRIOR_CSSC
}
enum  llvm::AArch64::ArchProfile { llvm::AArch64::AProfile = 'A' , llvm::AArch64::RProfile = 'R' , llvm::AArch64::InvalidProfile = '?' }

Functions

LLVM_ABI const std::vector< FMVInfo > & llvm::AArch64::getFMVInfo ()
LLVM_ABI const ExtensionInfollvm::AArch64::getExtensionByID (ArchExtKind(ExtID))
LLVM_ABI bool llvm::AArch64::getExtensionFeatures (const AArch64::ExtensionBitset &Extensions, std::vector< StringRef > &Features)
LLVM_ABI StringRef llvm::AArch64::getArchExtFeature (StringRef ArchExt)
LLVM_ABI StringRef llvm::AArch64::resolveCPUAlias (StringRef CPU)
LLVM_ABI const ArchInfollvm::AArch64::getArchForCpu (StringRef CPU)
LLVM_ABI const ArchInfollvm::AArch64::parseArch (StringRef Arch)
LLVM_ABI std::optional< ExtensionInfollvm::AArch64::targetFeatureToExtension (StringRef TargetFeature)
LLVM_ABI std::optional< ExtensionInfollvm::AArch64::parseArchExtension (StringRef Extension)
LLVM_ABI std::optional< FMVInfollvm::AArch64::parseFMVExtension (StringRef Extension)
LLVM_ABI std::optional< CpuInfollvm::AArch64::parseCpu (StringRef Name)
LLVM_ABI void llvm::AArch64::fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
LLVM_ABI bool llvm::AArch64::isX18ReservedByDefault (const Triple &TT)
LLVM_ABI APInt llvm::AArch64::getFMVPriority (ArrayRef< StringRef > Features)
LLVM_ABI APInt llvm::AArch64::getCpuSupportsMask (ArrayRef< StringRef > Features)
LLVM_ABI void llvm::AArch64::PrintSupportedExtensions ()
LLVM_ABI void llvm::AArch64::printEnabledExtensions (const std::set< StringRef > &EnabledFeatureNames)

Macro Definition Documentation

◆ AARCH64_CPU_FEATURS_INC_H

#define AARCH64_CPU_FEATURS_INC_H

Definition at line 22 of file AArch64TargetParser.h.

◆ AARCH64_FEAT_PRIORITIES_INC_H

#define AARCH64_FEAT_PRIORITIES_INC_H

Definition at line 15 of file AArch64TargetParser.h.

◆ EMIT_ARCHEXTKIND_ENUM

#define EMIT_ARCHEXTKIND_ENUM

Definition at line 46 of file AArch64TargetParser.h.

◆ EMIT_ARCHITECTURES

#define EMIT_ARCHITECTURES

Definition at line 153 of file AArch64TargetParser.h.

◆ EMIT_CPU_ALIAS

#define EMIT_CPU_ALIAS

Definition at line 242 of file AArch64TargetParser.h.

◆ EMIT_CPU_INFO

#define EMIT_CPU_INFO

Definition at line 168 of file AArch64TargetParser.h.

◆ EMIT_EXTENSION_DEPENDENCIES

#define EMIT_EXTENSION_DEPENDENCIES

Definition at line 94 of file AArch64TargetParser.h.

◆ EMIT_EXTENSIONS

#define EMIT_EXTENSIONS

Definition at line 70 of file AArch64TargetParser.h.