LLVM 19.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
CSKYTargetParser.h File Reference
#include "llvm/TargetParser/Triple.h"
#include <vector>
#include "CSKYTargetParser.def"
#include "llvm/TargetParser/CSKYTargetParser.def"

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

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  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 class  llvm::CSKY::FPUVersion { llvm::CSKY::NONE , llvm::CSKY::FPV2 , llvm::CSKY::FPV3 }
 
enum class  llvm::CSKY::ArchKind { llvm::CSKY::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.