LLVM 20.0.0git
Classes | Enumerations | Functions | Variables
llvm::LoongArch Namespace Reference

Classes

struct  ArchInfo
 
struct  FeatureInfo
 

Enumerations

enum  FeatureKind : uint32_t {
  FK_64BIT = 1 << 1 , FK_FP32 = 1 << 2 , FK_FP64 = 1 << 3 , FK_LSX = 1 << 4 ,
  FK_LASX = 1 << 5 , FK_LBT = 1 << 6 , FK_LVZ = 1 << 7 , FK_UAL = 1 << 8 ,
  FK_FRECIPE = 1 << 9 , FK_LAM_BH = 1 << 10 , FK_LAMCAS = 1 << 11 , FK_LD_SEQ_SA = 1 << 12 ,
  FK_DIV32 = 1 << 13
}
 
enum class  ArchKind { LOONGARCH_ARCH }
 
enum  Fixups {
  fixup_loongarch_b16 = FirstTargetFixupKind , fixup_loongarch_b21 , fixup_loongarch_b26 , fixup_loongarch_abs_hi20 ,
  fixup_loongarch_abs_lo12 , fixup_loongarch_abs64_lo20 , fixup_loongarch_abs64_hi12 , fixup_loongarch_tls_le_hi20 ,
  fixup_loongarch_tls_le_lo12 , fixup_loongarch_tls_le64_lo20 , fixup_loongarch_tls_le64_hi12 , fixup_loongarch_invalid ,
  NumTargetFixupKinds = fixup_loongarch_invalid - FirstTargetFixupKind , fixup_loongarch_pcala_hi20 , fixup_loongarch_pcala_lo12 , fixup_loongarch_pcala64_lo20 ,
  fixup_loongarch_pcala64_hi12 , fixup_loongarch_got_pc_hi20 , fixup_loongarch_got_pc_lo12 , fixup_loongarch_got64_pc_lo20 ,
  fixup_loongarch_got64_pc_hi12 , fixup_loongarch_got_hi20 , fixup_loongarch_got_lo12 , fixup_loongarch_got64_lo20 ,
  fixup_loongarch_got64_hi12 , fixup_loongarch_tls_ie_pc_hi20 , fixup_loongarch_tls_ie_pc_lo12 , fixup_loongarch_tls_ie64_pc_lo20 ,
  fixup_loongarch_tls_ie64_pc_hi12 , fixup_loongarch_tls_ie_hi20 , fixup_loongarch_tls_ie_lo12 , fixup_loongarch_tls_ie64_lo20 ,
  fixup_loongarch_tls_ie64_hi12 , fixup_loongarch_tls_ld_pc_hi20 , fixup_loongarch_tls_ld_hi20 , fixup_loongarch_tls_gd_pc_hi20 ,
  fixup_loongarch_tls_gd_hi20 , fixup_loongarch_relax = FirstLiteralRelocationKind + ELF::R_LARCH_RELAX , fixup_loongarch_align = FirstLiteralRelocationKind + ELF::R_LARCH_ALIGN , fixup_loongarch_pcrel20_s2 ,
  fixup_loongarch_call36 = FirstLiteralRelocationKind + ELF::R_LARCH_CALL36 , fixup_loongarch_tls_desc_pc_hi20 , fixup_loongarch_tls_desc_pc_lo12 , fixup_loongarch_tls_desc64_pc_lo20 ,
  fixup_loongarch_tls_desc64_pc_hi12 , fixup_loongarch_tls_desc_hi20 , fixup_loongarch_tls_desc_lo12 , fixup_loongarch_tls_desc64_lo20 ,
  fixup_loongarch_tls_desc64_hi12 , fixup_loongarch_tls_desc_ld , fixup_loongarch_tls_desc_call , fixup_loongarch_tls_le_hi20_r ,
  fixup_loongarch_tls_le_add_r , fixup_loongarch_tls_le_lo12_r , fixup_loongarch_tls_ld_pcrel20_s2 , fixup_loongarch_tls_gd_pcrel20_s2 ,
  fixup_loongarch_tls_desc_pcrel20_s2
}
 

Functions

bool isValidArchName (StringRef Arch)
 
bool getArchFeatures (StringRef Arch, std::vector< StringRef > &Features)
 
bool isValidCPUName (StringRef TuneCPU)
 
void fillValidCPUList (SmallVectorImpl< StringRef > &Values)
 
StringRef getDefaultArch (bool Is64Bit)
 
bool isSEXT_W (const MachineInstr &MI)
 

Variables

static constexpr unsigned FClassMaskSignalingNaN = 0x001
 
static constexpr unsigned FClassMaskQuietNaN = 0x002
 
static constexpr unsigned FClassMaskNegativeInfinity = 0x004
 
static constexpr unsigned FClassMaskNegativeNormal = 0x008
 
static constexpr unsigned FClassMaskNegativeSubnormal = 0x010
 
static constexpr unsigned FClassMaskNegativeZero = 0x020
 
static constexpr unsigned FClassMaskPositiveInfinity = 0x040
 
static constexpr unsigned FClassMaskPositiveNormal = 0x080
 
static constexpr unsigned FClassMaskPositiveSubnormal = 0x100
 
static constexpr unsigned FClassMaskPositiveZero = 0x200
 

Enumeration Type Documentation

◆ ArchKind

enum class llvm::LoongArch::ArchKind
strong
Enumerator
LOONGARCH_ARCH 

Definition at line 73 of file LoongArchTargetParser.h.

◆ FeatureKind

Enumerator
FK_64BIT 
FK_FP32 
FK_FP64 
FK_LSX 
FK_LASX 
FK_LBT 
FK_LVZ 
FK_UAL 
FK_FRECIPE 
FK_LAM_BH 
FK_LAMCAS 
FK_LD_SEQ_SA 
FK_DIV32 

Definition at line 25 of file LoongArchTargetParser.h.

◆ Fixups

Enumerator
fixup_loongarch_b16 
fixup_loongarch_b21 
fixup_loongarch_b26 
fixup_loongarch_abs_hi20 
fixup_loongarch_abs_lo12 
fixup_loongarch_abs64_lo20 
fixup_loongarch_abs64_hi12 
fixup_loongarch_tls_le_hi20 
fixup_loongarch_tls_le_lo12 
fixup_loongarch_tls_le64_lo20 
fixup_loongarch_tls_le64_hi12 
fixup_loongarch_invalid 
NumTargetFixupKinds 
fixup_loongarch_pcala_hi20 
fixup_loongarch_pcala_lo12 
fixup_loongarch_pcala64_lo20 
fixup_loongarch_pcala64_hi12 
fixup_loongarch_got_pc_hi20 
fixup_loongarch_got_pc_lo12 
fixup_loongarch_got64_pc_lo20 
fixup_loongarch_got64_pc_hi12 
fixup_loongarch_got_hi20 
fixup_loongarch_got_lo12 
fixup_loongarch_got64_lo20 
fixup_loongarch_got64_hi12 
fixup_loongarch_tls_ie_pc_hi20 
fixup_loongarch_tls_ie_pc_lo12 
fixup_loongarch_tls_ie64_pc_lo20 
fixup_loongarch_tls_ie64_pc_hi12 
fixup_loongarch_tls_ie_hi20 
fixup_loongarch_tls_ie_lo12 
fixup_loongarch_tls_ie64_lo20 
fixup_loongarch_tls_ie64_hi12 
fixup_loongarch_tls_ld_pc_hi20 
fixup_loongarch_tls_ld_hi20 
fixup_loongarch_tls_gd_pc_hi20 
fixup_loongarch_tls_gd_hi20 
fixup_loongarch_relax 
fixup_loongarch_align 
fixup_loongarch_pcrel20_s2 
fixup_loongarch_call36 
fixup_loongarch_tls_desc_pc_hi20 
fixup_loongarch_tls_desc_pc_lo12 
fixup_loongarch_tls_desc64_pc_lo20 
fixup_loongarch_tls_desc64_pc_hi12 
fixup_loongarch_tls_desc_hi20 
fixup_loongarch_tls_desc_lo12 
fixup_loongarch_tls_desc64_lo20 
fixup_loongarch_tls_desc64_hi12 
fixup_loongarch_tls_desc_ld 
fixup_loongarch_tls_desc_call 
fixup_loongarch_tls_le_hi20_r 
fixup_loongarch_tls_le_add_r 
fixup_loongarch_tls_le_lo12_r 
fixup_loongarch_tls_ld_pcrel20_s2 
fixup_loongarch_tls_gd_pcrel20_s2 
fixup_loongarch_tls_desc_pcrel20_s2 

Definition at line 24 of file LoongArchFixupKinds.h.

Function Documentation

◆ fillValidCPUList()

void llvm::LoongArch::fillValidCPUList ( SmallVectorImpl< StringRef > &  Values)

Definition at line 68 of file LoongArchTargetParser.cpp.

References A, AllArchs, and llvm::SmallVectorImpl< T >::emplace_back().

◆ getArchFeatures()

bool llvm::LoongArch::getArchFeatures ( StringRef  Arch,
std::vector< StringRef > &  Features 
)

Definition at line 37 of file LoongArchTargetParser.cpp.

References A, AllArchs, AllFeatures, and F.

◆ getDefaultArch()

StringRef llvm::LoongArch::getDefaultArch ( bool  Is64Bit)

Definition at line 73 of file LoongArchTargetParser.cpp.

◆ isSEXT_W()

bool llvm::LoongArch::isSEXT_W ( const MachineInstr MI)

Definition at line 659 of file LoongArchInstrInfo.cpp.

References MI.

◆ isValidArchName()

bool llvm::LoongArch::isValidArchName ( StringRef  Arch)

Definition at line 30 of file LoongArchTargetParser.cpp.

References A, and AllArchs.

Referenced by isValidCPUName().

◆ isValidCPUName()

bool llvm::LoongArch::isValidCPUName ( StringRef  TuneCPU)

Definition at line 66 of file LoongArchTargetParser.cpp.

References isValidArchName(), and Name.

Variable Documentation

◆ FClassMaskNegativeInfinity

constexpr unsigned llvm::LoongArch::FClassMaskNegativeInfinity = 0x004
staticconstexpr

Definition at line 106 of file LoongArchInstrInfo.h.

◆ FClassMaskNegativeNormal

constexpr unsigned llvm::LoongArch::FClassMaskNegativeNormal = 0x008
staticconstexpr

Definition at line 107 of file LoongArchInstrInfo.h.

◆ FClassMaskNegativeSubnormal

constexpr unsigned llvm::LoongArch::FClassMaskNegativeSubnormal = 0x010
staticconstexpr

Definition at line 108 of file LoongArchInstrInfo.h.

◆ FClassMaskNegativeZero

constexpr unsigned llvm::LoongArch::FClassMaskNegativeZero = 0x020
staticconstexpr

Definition at line 109 of file LoongArchInstrInfo.h.

◆ FClassMaskPositiveInfinity

constexpr unsigned llvm::LoongArch::FClassMaskPositiveInfinity = 0x040
staticconstexpr

Definition at line 110 of file LoongArchInstrInfo.h.

◆ FClassMaskPositiveNormal

constexpr unsigned llvm::LoongArch::FClassMaskPositiveNormal = 0x080
staticconstexpr

Definition at line 111 of file LoongArchInstrInfo.h.

◆ FClassMaskPositiveSubnormal

constexpr unsigned llvm::LoongArch::FClassMaskPositiveSubnormal = 0x100
staticconstexpr

Definition at line 112 of file LoongArchInstrInfo.h.

◆ FClassMaskPositiveZero

constexpr unsigned llvm::LoongArch::FClassMaskPositiveZero = 0x200
staticconstexpr

Definition at line 113 of file LoongArchInstrInfo.h.

◆ FClassMaskQuietNaN

constexpr unsigned llvm::LoongArch::FClassMaskQuietNaN = 0x002
staticconstexpr

Definition at line 105 of file LoongArchInstrInfo.h.

◆ FClassMaskSignalingNaN

constexpr unsigned llvm::LoongArch::FClassMaskSignalingNaN = 0x001
staticconstexpr

Definition at line 104 of file LoongArchInstrInfo.h.