#ifndef LLVM_TARGETPARSER_CSKYTARGETPARSER_H
#define LLVM_TARGETPARSER_CSKYTARGETPARSER_H
#include "llvm/TargetParser/Triple.h"
#include <vector>
namespace llvm {
class StringRef;
namespace CSKY {
enum ArchExtKind : uint64_t { … };
enum MultiArchExtKind : uint64_t { … };
enum CSKYFPUKind { … };
enum class FPUVersion { … };
enum class ArchKind { … };
struct ExtName { … };
const CSKY::ExtName CSKYARCHExtNames[] = …;
template <typename T> struct CpuNames { … };
const CpuNames<CSKY::ArchKind> CPUNames[] = …;
struct FPUName { … };
static const FPUName FPUNames[] = …;
template <typename T> struct ArchNames { … };
const ArchNames<CSKY::ArchKind> ARCHNames[] = …;
StringRef getArchName(ArchKind AK);
StringRef getDefaultCPU(StringRef Arch);
StringRef getArchExtName(uint64_t ArchExtKind);
StringRef getArchExtFeature(StringRef ArchExt);
uint64_t getDefaultExtensions(StringRef CPU);
bool getExtensionFeatures(uint64_t Extensions,
std::vector<StringRef> &Features);
StringRef getFPUName(unsigned FPUKind);
FPUVersion getFPUVersion(unsigned FPUKind);
bool getFPUFeatures(CSKYFPUKind Kind, std::vector<StringRef> &Features);
ArchKind parseArch(StringRef Arch);
ArchKind parseCPUArch(StringRef CPU);
uint64_t parseArchExt(StringRef ArchExt);
void fillValidCPUArchList(SmallVectorImpl<StringRef> &Values);
}
}
#endif