LLVM 22.0.0git
AArch64BaseInfo.h File Reference
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include "AArch64GenSystemOperands.inc"

Go to the source code of this file.

Classes

struct  llvm::SysAlias
struct  llvm::SysAliasReg
struct  llvm::SysAliasImm
struct  llvm::AArch64SVCR::SVCR
struct  llvm::AArch64AT::AT
struct  llvm::AArch64DB::DB
struct  llvm::AArch64DBnXS::DBnXS
struct  llvm::AArch64DC::DC
struct  llvm::AArch64IC::IC
struct  llvm::AArch64ISB::ISB
struct  llvm::AArch64TSB::TSB
struct  llvm::AArch64PRFM::PRFM
struct  llvm::AArch64SVEPRFM::SVEPRFM
struct  llvm::AArch64RPRFM::RPRFM
struct  llvm::AArch64SVEPredPattern::SVEPREDPAT
struct  llvm::AArch64SVEVecLenSpecifier::SVEVECLENSPECIFIER
struct  llvm::AArch64ExactFPImm::ExactFPImm
struct  llvm::AArch64PState::PStateImm0_15
struct  llvm::AArch64PState::PStateImm0_1
struct  llvm::AArch64PSBHint::PSB
struct  llvm::AArch64PHint::PHint
struct  llvm::AArch64BTIHint::BTI
struct  llvm::AArch64SysReg::SysReg
struct  llvm::AArch64TLBI::TLBI

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::AArch64CC
namespace  llvm::AArch64SVCR
namespace  llvm::AArch64AT
namespace  llvm::AArch64DB
namespace  llvm::AArch64DBnXS
namespace  llvm::AArch64DC
namespace  llvm::AArch64IC
namespace  llvm::AArch64ISB
namespace  llvm::AArch64TSB
namespace  llvm::AArch64PRFM
namespace  llvm::AArch64SVEPRFM
namespace  llvm::AArch64RPRFM
namespace  llvm::AArch64SVEPredPattern
namespace  llvm::AArch64SVEVecLenSpecifier
namespace  llvm::AArch64ExactFPImm
namespace  llvm::AArch64PState
namespace  llvm::AArch64PSBHint
namespace  llvm::AArch64PHint
namespace  llvm::AArch64BTIHint
namespace  llvm::AArch64SME
namespace  llvm::AArch64SE
namespace  llvm::AArch64Layout
namespace  llvm::AArch64SysReg
namespace  llvm::AArch64TLBI
namespace  llvm::AArch64II
namespace  llvm::AArch64PACKey
namespace  llvm::AArch64

Macros

#define GET_SVCRValues_DECL
#define GET_SVCRsList_DECL
#define GET_ATValues_DECL
#define GET_ATsList_DECL
#define GET_DBValues_DECL
#define GET_DBsList_DECL
#define GET_DBnXSValues_DECL
#define GET_DBnXSsList_DECL
#define GET_DCValues_DECL
#define GET_DCsList_DECL
#define GET_ICValues_DECL
#define GET_ICsList_DECL
#define GET_ISBValues_DECL
#define GET_ISBsList_DECL
#define GET_TSBValues_DECL
#define GET_TSBsList_DECL
#define GET_PRFMValues_DECL
#define GET_PRFMsList_DECL
#define GET_SVEPRFMValues_DECL
#define GET_SVEPRFMsList_DECL
#define GET_RPRFMValues_DECL
#define GET_RPRFMsList_DECL
#define GET_SVEPREDPATValues_DECL
#define GET_SVEPREDPATsList_DECL
#define GET_SVEVECLENSPECIFIERValues_DECL
#define GET_SVEVECLENSPECIFIERsList_DECL
#define GET_ExactFPImmValues_DECL
#define GET_ExactFPImmsList_DECL
#define GET_PStateImm0_15Values_DECL
#define GET_PStateImm0_15sList_DECL
#define GET_PStateImm0_1Values_DECL
#define GET_PStateImm0_1sList_DECL
#define GET_PSBValues_DECL
#define GET_PSBsList_DECL
#define GET_PHintValues_DECL
#define GET_PHintsList_DECL
#define GET_BTIValues_DECL
#define GET_BTIsList_DECL
#define GET_SysRegsList_DECL
#define GET_SysRegValues_DECL
#define GET_TLBITable_DECL

Enumerations

enum  llvm::AArch64CC::CondCode {
  llvm::AArch64CC::EQ = 0x0 , llvm::AArch64CC::NE = 0x1 , llvm::AArch64CC::HS = 0x2 , llvm::AArch64CC::LO = 0x3 ,
  llvm::AArch64CC::MI = 0x4 , llvm::AArch64CC::PL = 0x5 , llvm::AArch64CC::VS = 0x6 , llvm::AArch64CC::VC = 0x7 ,
  llvm::AArch64CC::HI = 0x8 , llvm::AArch64CC::LS = 0x9 , llvm::AArch64CC::GE = 0xa , llvm::AArch64CC::LT = 0xb ,
  llvm::AArch64CC::GT = 0xc , llvm::AArch64CC::LE = 0xd , llvm::AArch64CC::AL = 0xe , llvm::AArch64CC::NV = 0xf ,
  llvm::AArch64CC::Invalid , llvm::AArch64CC::ANY_ACTIVE = NE , llvm::AArch64CC::FIRST_ACTIVE = MI , llvm::AArch64CC::LAST_ACTIVE = LO ,
  llvm::AArch64CC::NONE_ACTIVE = EQ
}
enum class  llvm::TailFoldingOpts : uint8_t {
  llvm::Disabled = 0x00 , llvm::Simple = 0x01 , llvm::Reductions = 0x02 , llvm::Recurrences = 0x04 ,
  llvm::Reverse = 0x08 , llvm::All = Reductions | Recurrences | Simple | Reverse
}
 An enum to describe what types of loops we should attempt to tail-fold: Disabled: None Reductions: Loops containing reductions Recurrences: Loops with first-order recurrences, i.e. More...
enum  llvm::AArch64SME::ToggleCondition : unsigned { llvm::AArch64SME::Always , llvm::AArch64SME::IfCallerIsStreaming , llvm::AArch64SME::IfCallerIsNonStreaming }
enum  llvm::AArch64SE::ShiftExtSpecifiers {
  llvm::AArch64SE::Invalid = -1 , llvm::AArch64SE::LSL , llvm::AArch64SE::MSL , llvm::AArch64SE::LSR ,
  llvm::AArch64SE::ASR , llvm::AArch64SE::ROR , llvm::AArch64SE::UXTB , llvm::AArch64SE::UXTH ,
  llvm::AArch64SE::UXTW , llvm::AArch64SE::UXTX , llvm::AArch64SE::SXTB , llvm::AArch64SE::SXTH ,
  llvm::AArch64SE::SXTW , llvm::AArch64SE::SXTX
}
enum  llvm::AArch64Layout::VectorLayout {
  llvm::AArch64Layout::Invalid = -1 , llvm::AArch64Layout::VL_8B , llvm::AArch64Layout::VL_4H , llvm::AArch64Layout::VL_2S ,
  llvm::AArch64Layout::VL_1D , llvm::AArch64Layout::VL_16B , llvm::AArch64Layout::VL_8H , llvm::AArch64Layout::VL_4S ,
  llvm::AArch64Layout::VL_2D , llvm::AArch64Layout::VL_B , llvm::AArch64Layout::VL_H , llvm::AArch64Layout::VL_S ,
  llvm::AArch64Layout::VL_D
}
enum  llvm::AArch64II::TOF {
  llvm::AArch64II::MO_NO_FLAG , llvm::AArch64II::MO_FRAGMENT = 0x7 , llvm::AArch64II::MO_PAGE = 1 , llvm::AArch64II::MO_PAGEOFF = 2 ,
  llvm::AArch64II::MO_G3 = 3 , llvm::AArch64II::MO_G2 = 4 , llvm::AArch64II::MO_G1 = 5 , llvm::AArch64II::MO_G0 = 6 ,
  llvm::AArch64II::MO_HI12 = 7 , llvm::AArch64II::MO_COFFSTUB = 0x8 , llvm::AArch64II::MO_GOT = 0x10 , llvm::AArch64II::MO_NC = 0x20 ,
  llvm::AArch64II::MO_TLS = 0x40 , llvm::AArch64II::MO_DLLIMPORT = 0x80 , llvm::AArch64II::MO_S = 0x100 , llvm::AArch64II::MO_PREL = 0x200 ,
  llvm::AArch64II::MO_TAGGED = 0x400 , llvm::AArch64II::MO_ARM64EC_CALLMANGLE = 0x800
}
 Target Operand Flag enum. More...
enum  llvm::AArch64PACKey::ID : uint8_t {
  llvm::AArch64PACKey::IA = 0 , llvm::AArch64PACKey::IB = 1 , llvm::AArch64PACKey::DA = 2 , llvm::AArch64PACKey::DB = 3 ,
  llvm::AArch64PACKey::LAST = DB
}

Functions

static MCRegister llvm::getWRegFromXReg (MCRegister Reg)
static MCRegister llvm::getXRegFromWReg (MCRegister Reg)
static MCRegister llvm::getXRegFromXRegTuple (MCRegister RegTuple)
static MCRegister llvm::getBRegFromDReg (MCRegister Reg)
static MCRegister llvm::getDRegFromBReg (MCRegister Reg)
static bool llvm::atomicBarrierDroppedOnZero (unsigned Opcode)
static const charllvm::AArch64CC::getCondCodeName (CondCode Code)
static CondCode llvm::AArch64CC::getInvertedCondCode (CondCode Code)
static CondCode llvm::AArch64CC::getSwappedCondition (CondCode CC)
 getSwappedCondition - assume the flags are set by MI(a,b), return the condition code if we modify the instructions such that flags are set by MI(b,a).
static unsigned llvm::AArch64CC::getNZCVToSatisfyCondCode (CondCode Code)
 Given a condition code, return NZCV flags that would satisfy that condition.
static bool llvm::AArch64CC::isValidCBCond (AArch64CC::CondCode Code)
 True, if a given condition code can be used in a fused compare-and-branch instructions, false otherwise.
unsigned llvm::getNumElementsFromSVEPredPattern (unsigned Pattern)
 Return the number of active elements for VL1 to VL256 predicate pattern, zero for all other patterns.
std::optional< unsignedllvm::getSVEPredPatternFromNumElements (unsigned MinNumElts)
 Return specific VL predicate pattern based on the number of elements.
 llvm::LLVM_DECLARE_ENUM_AS_BITMASK (TailFoldingOpts,(long) TailFoldingOpts::Reverse)
const PHintllvm::AArch64PHint::lookupPHintByName (StringRef)
const PHintllvm::AArch64PHint::lookupPHintByEncoding (uint16_t)
static const charllvm::AArch64VectorLayoutToString (AArch64Layout::VectorLayout Layout)
static AArch64Layout::VectorLayout llvm::AArch64StringToVectorLayout (StringRef LayoutStr)
uint32_t llvm::AArch64SysReg::parseGenericRegister (StringRef Name)
std::string llvm::AArch64SysReg::genericRegisterString (uint32_t Bits)
static StringRef llvm::AArch64PACKeyIDToString (AArch64PACKey::ID KeyID)
 Return 2-letter identifier string for numeric key ID.
static std::optional< AArch64PACKey::IDllvm::AArch64StringToPACKeyID (StringRef Name)
 Return numeric key ID for 2-letter identifier string.

Variables

static constexpr unsigned llvm::AArch64::SVEBitsPerBlock = 128
static constexpr unsigned llvm::AArch64::SVEMaxBitsPerVector = 2048

Macro Definition Documentation

◆ GET_ATsList_DECL

#define GET_ATsList_DECL

Definition at line 434 of file AArch64BaseInfo.h.

◆ GET_ATValues_DECL

#define GET_ATValues_DECL

Definition at line 433 of file AArch64BaseInfo.h.

◆ GET_BTIsList_DECL

#define GET_BTIsList_DECL

Definition at line 676 of file AArch64BaseInfo.h.

◆ GET_BTIValues_DECL

#define GET_BTIValues_DECL

Definition at line 675 of file AArch64BaseInfo.h.

◆ GET_DBnXSsList_DECL

#define GET_DBnXSsList_DECL

Definition at line 452 of file AArch64BaseInfo.h.

◆ GET_DBnXSValues_DECL

#define GET_DBnXSValues_DECL

Definition at line 451 of file AArch64BaseInfo.h.

◆ GET_DBsList_DECL

#define GET_DBsList_DECL

Definition at line 443 of file AArch64BaseInfo.h.

◆ GET_DBValues_DECL

#define GET_DBValues_DECL

Definition at line 442 of file AArch64BaseInfo.h.

◆ GET_DCsList_DECL

#define GET_DCsList_DECL

Definition at line 461 of file AArch64BaseInfo.h.

◆ GET_DCValues_DECL

#define GET_DCValues_DECL

Definition at line 460 of file AArch64BaseInfo.h.

◆ GET_ExactFPImmsList_DECL

#define GET_ExactFPImmsList_DECL

Definition at line 622 of file AArch64BaseInfo.h.

◆ GET_ExactFPImmValues_DECL

#define GET_ExactFPImmValues_DECL

Definition at line 621 of file AArch64BaseInfo.h.

◆ GET_ICsList_DECL

#define GET_ICsList_DECL

Definition at line 470 of file AArch64BaseInfo.h.

◆ GET_ICValues_DECL

#define GET_ICValues_DECL

Definition at line 469 of file AArch64BaseInfo.h.

◆ GET_ISBsList_DECL

#define GET_ISBsList_DECL

Definition at line 479 of file AArch64BaseInfo.h.

◆ GET_ISBValues_DECL

#define GET_ISBValues_DECL

Definition at line 478 of file AArch64BaseInfo.h.

◆ GET_PHintsList_DECL

#define GET_PHintsList_DECL

Definition at line 664 of file AArch64BaseInfo.h.

◆ GET_PHintValues_DECL

#define GET_PHintValues_DECL

Definition at line 663 of file AArch64BaseInfo.h.

◆ GET_PRFMsList_DECL

#define GET_PRFMsList_DECL

Definition at line 497 of file AArch64BaseInfo.h.

◆ GET_PRFMValues_DECL

#define GET_PRFMValues_DECL

Definition at line 496 of file AArch64BaseInfo.h.

◆ GET_PSBsList_DECL

#define GET_PSBsList_DECL

Definition at line 647 of file AArch64BaseInfo.h.

◆ GET_PSBValues_DECL

#define GET_PSBValues_DECL

Definition at line 646 of file AArch64BaseInfo.h.

◆ GET_PStateImm0_15sList_DECL

#define GET_PStateImm0_15sList_DECL

Definition at line 631 of file AArch64BaseInfo.h.

◆ GET_PStateImm0_15Values_DECL

#define GET_PStateImm0_15Values_DECL

Definition at line 630 of file AArch64BaseInfo.h.

◆ GET_PStateImm0_1sList_DECL

#define GET_PStateImm0_1sList_DECL

Definition at line 638 of file AArch64BaseInfo.h.

◆ GET_PStateImm0_1Values_DECL

#define GET_PStateImm0_1Values_DECL

Definition at line 637 of file AArch64BaseInfo.h.

◆ GET_RPRFMsList_DECL

#define GET_RPRFMsList_DECL

Definition at line 515 of file AArch64BaseInfo.h.

◆ GET_RPRFMValues_DECL

#define GET_RPRFMValues_DECL

Definition at line 514 of file AArch64BaseInfo.h.

◆ GET_SVCRsList_DECL

#define GET_SVCRsList_DECL

Definition at line 425 of file AArch64BaseInfo.h.

◆ GET_SVCRValues_DECL

#define GET_SVCRValues_DECL

Definition at line 424 of file AArch64BaseInfo.h.

◆ GET_SVEPREDPATsList_DECL

#define GET_SVEPREDPATsList_DECL

Definition at line 525 of file AArch64BaseInfo.h.

◆ GET_SVEPREDPATValues_DECL

#define GET_SVEPREDPATValues_DECL

Definition at line 524 of file AArch64BaseInfo.h.

◆ GET_SVEPRFMsList_DECL

#define GET_SVEPRFMsList_DECL

Definition at line 506 of file AArch64BaseInfo.h.

◆ GET_SVEPRFMValues_DECL

#define GET_SVEPRFMValues_DECL

Definition at line 505 of file AArch64BaseInfo.h.

◆ GET_SVEVECLENSPECIFIERsList_DECL

#define GET_SVEVECLENSPECIFIERsList_DECL

Definition at line 535 of file AArch64BaseInfo.h.

◆ GET_SVEVECLENSPECIFIERValues_DECL

#define GET_SVEVECLENSPECIFIERValues_DECL

Definition at line 534 of file AArch64BaseInfo.h.

◆ GET_SysRegsList_DECL

#define GET_SysRegsList_DECL

Definition at line 782 of file AArch64BaseInfo.h.

◆ GET_SysRegValues_DECL

#define GET_SysRegValues_DECL

Definition at line 783 of file AArch64BaseInfo.h.

◆ GET_TLBITable_DECL

#define GET_TLBITable_DECL

Definition at line 794 of file AArch64BaseInfo.h.

◆ GET_TSBsList_DECL

#define GET_TSBsList_DECL

Definition at line 488 of file AArch64BaseInfo.h.

◆ GET_TSBValues_DECL

#define GET_TSBValues_DECL

Definition at line 487 of file AArch64BaseInfo.h.