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

Go to the source code of this file.

Classes

struct  llvm::CSKY::ExtName
 
struct  llvm::CSKY::CpuNames< T >
 
struct  llvm::CSKY::FPUName
 
struct  llvm::CSKY::ArchNames< T >
 

Namespaces

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

Macros

#define CSKY_FPU(NAME, KIND, VERSION)   KIND,
 
#define CSKY_ARCH(NAME, ID, ARCH_BASE_EXT)   ID,
 
#define CSKY_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE)   {NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE},
 
#define CSKY_CPU_NAME(NAME, ARCH_ID, DEFAULT_EXT)   {NAME, sizeof(NAME) - 1, CSKY::ArchKind::ARCH_ID, DEFAULT_EXT},
 
#define CSKY_FPU(NAME, KIND, VERSION)   {NAME, sizeof(NAME) - 1, KIND, VERSION},
 
#define CSKY_ARCH(NAME, ID, ARCH_BASE_EXT)   {NAME, sizeof(NAME) - 1, CSKY::ArchKind::ID, ARCH_BASE_EXT},
 

Enumerations

enum  llvm::CSKY::ArchExtKind : uint64_t {
  llvm::CSKY::AEK_INVALID = 0, llvm::CSKY::AEK_NONE = 1, llvm::CSKY::AEK_FPUV2SF = 1 << 1, llvm::CSKY::AEK_FPUV2DF = 1 << 2,
  llvm::CSKY::AEK_FDIVDU = 1 << 3, llvm::CSKY::AEK_FPUV3HI = 1 << 4, llvm::CSKY::AEK_FPUV3HF = 1 << 5, llvm::CSKY::AEK_FPUV3SF = 1 << 6,
  llvm::CSKY::AEK_FPUV3DF = 1 << 7, llvm::CSKY::AEK_FLOATE1 = 1 << 8, llvm::CSKY::AEK_FLOAT1E2 = 1 << 9, llvm::CSKY::AEK_FLOAT1E3 = 1 << 10,
  llvm::CSKY::AEK_FLOAT3E4 = 1 << 11, llvm::CSKY::AEK_FLOAT7E60 = 1 << 12, llvm::CSKY::AEK_HWDIV = 1 << 13, llvm::CSKY::AEK_STLD = 1 << 14,
  llvm::CSKY::AEK_PUSHPOP = 1 << 15, llvm::CSKY::AEK_EDSP = 1 << 16, llvm::CSKY::AEK_DSP1E2 = 1 << 17, llvm::CSKY::AEK_DSPE60 = 1 << 18,
  llvm::CSKY::AEK_DSPV2 = 1 << 19, llvm::CSKY::AEK_DSPSILAN = 1 << 20, llvm::CSKY::AEK_ELRW = 1 << 21, llvm::CSKY::AEK_TRUST = 1 << 22,
  llvm::CSKY::AEK_JAVA = 1 << 23, llvm::CSKY::AEK_CACHE = 1 << 24, llvm::CSKY::AEK_NVIC = 1 << 25, llvm::CSKY::AEK_DOLOOP = 1 << 26,
  llvm::CSKY::AEK_HIGHREG = 1 << 27, llvm::CSKY::AEK_SMART = 1 << 28, llvm::CSKY::AEK_VDSP2E3 = 1 << 29, llvm::CSKY::AEK_VDSP2E60F = 1 << 30,
  llvm::CSKY::AEK_VDSPV2 = 1ULL << 31, llvm::CSKY::AEK_HARDTP = 1ULL << 32, llvm::CSKY::AEK_SOFTTP = 1ULL << 33, llvm::CSKY::AEK_ISTACK = 1ULL << 34,
  llvm::CSKY::AEK_CONSTPOOL = 1ULL << 35, llvm::CSKY::AEK_STACKSIZE = 1ULL << 36, llvm::CSKY::AEK_CCRT = 1ULL << 37, llvm::CSKY::AEK_VDSPV1 = 1ULL << 38,
  llvm::CSKY::AEK_E1 = 1ULL << 39, llvm::CSKY::AEK_E2 = 1ULL << 40, llvm::CSKY::AEK_2E3 = 1ULL << 41, llvm::CSKY::AEK_MP = 1ULL << 42,
  llvm::CSKY::AEK_3E3R1 = 1ULL << 43, llvm::CSKY::AEK_3E3R2 = 1ULL << 44, llvm::CSKY::AEK_3E3R3 = 1ULL << 45, llvm::CSKY::AEK_3E7 = 1ULL << 46,
  llvm::CSKY::AEK_MP1E2 = 1ULL << 47, llvm::CSKY::AEK_7E10 = 1ULL << 48, llvm::CSKY::AEK_10E60 = 1ULL << 49
}
 
enum  llvm::CSKY::MultiArchExtKind : uint64_t {
  llvm::CSKY::MAEK_E1 = CSKY::AEK_E1 | CSKY::AEK_ELRW, llvm::CSKY::MAEK_E2 = CSKY::AEK_E2 | CSKY::MAEK_E1, llvm::CSKY::MAEK_2E3 = CSKY::AEK_2E3 | CSKY::MAEK_E2, llvm::CSKY::MAEK_MP = CSKY::AEK_MP | CSKY::MAEK_2E3,
  llvm::CSKY::MAEK_3E3R1 = CSKY::AEK_3E3R1, llvm::CSKY::MAEK_3E3R2 = CSKY::AEK_3E3R1 | CSKY::AEK_3E3R2 | CSKY::AEK_DOLOOP, llvm::CSKY::MAEK_3E7 = CSKY::AEK_3E7 | CSKY::MAEK_2E3, llvm::CSKY::MAEK_MP1E2 = CSKY::AEK_MP1E2 | CSKY::MAEK_3E7,
  llvm::CSKY::MAEK_7E10 = CSKY::AEK_7E10 | CSKY::MAEK_3E7, llvm::CSKY::MAEK_10E60 = CSKY::AEK_10E60 | CSKY::MAEK_7E10
}
 
enum  llvm::CSKY::CSKYFPUKind { llvm::CSKY::FK_LAST }
 
enum  llvm::CSKY::FPUVersion { llvm::CSKY::FPUVersion::NONE, llvm::CSKY::FPUVersion::FPV2, llvm::CSKY::FPUVersion::FPV3 }
 
enum  llvm::CSKY::ArchKind { llvm::CSKY::ArchKind::CSKY_ARCH }
 

Functions

StringRef llvm::CSKY::getArchName (ArchKind AK)
 
StringRef llvm::CSKY::getDefaultCPU (StringRef Arch)
 
StringRef llvm::CSKY::getArchExtName (uint64_t ArchExtKind)
 
StringRef llvm::CSKY::getArchExtFeature (StringRef ArchExt)
 
uint64_t llvm::CSKY::getDefaultExtensions (StringRef CPU)
 
bool llvm::CSKY::getExtensionFeatures (uint64_t Extensions, std::vector< StringRef > &Features)
 
StringRef llvm::CSKY::getFPUName (unsigned FPUKind)
 
FPUVersion llvm::CSKY::getFPUVersion (unsigned FPUKind)
 
bool llvm::CSKY::getFPUFeatures (CSKYFPUKind Kind, std::vector< StringRef > &Features)
 
ArchKind llvm::CSKY::parseArch (StringRef Arch)
 
ArchKind llvm::CSKY::parseCPUArch (StringRef CPU)
 
uint64_t llvm::CSKY::parseArchExt (StringRef ArchExt)
 
void llvm::CSKY::fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 

Variables

const CSKY::ExtName llvm::CSKY::CSKYARCHExtNames []
 
const CpuNames< CSKY::ArchKind > llvm::CSKY::CPUNames []
 
static const FPUName llvm::CSKY::FPUNames []
 
const ArchNames< CSKY::ArchKind > llvm::CSKY::ARCHNames []
 

Macro Definition Documentation

◆ CSKY_ARCH [1/2]

#define CSKY_ARCH (   NAME,
  ID,
  ARCH_BASE_EXT 
)    ID,

Definition at line 111 of file CSKYTargetParser.h.

◆ CSKY_ARCH [2/2]

#define CSKY_ARCH (   NAME,
  ID,
  ARCH_BASE_EXT 
)    {NAME, sizeof(NAME) - 1, CSKY::ArchKind::ID, ARCH_BASE_EXT},

Definition at line 111 of file CSKYTargetParser.h.

◆ CSKY_ARCH_EXT_NAME

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

◆ CSKY_CPU_NAME

#define CSKY_CPU_NAME (   NAME,
  ARCH_ID,
  DEFAULT_EXT 
)    {NAME, sizeof(NAME) - 1, CSKY::ArchKind::ARCH_ID, DEFAULT_EXT},

◆ CSKY_FPU [1/2]

#define CSKY_FPU (   NAME,
  KIND,
  VERSION 
)    KIND,

Definition at line 97 of file CSKYTargetParser.h.

◆ CSKY_FPU [2/2]

#define CSKY_FPU (   NAME,
  KIND,
  VERSION 
)    {NAME, sizeof(NAME) - 1, KIND, VERSION},

Definition at line 97 of file CSKYTargetParser.h.