#ifndef LLVM_TARGETPARSER_AARCH64TARGETPARSER_H
#define LLVM_TARGETPARSER_AARCH64TARGETPARSER_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Bitset.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include <array>
#include <set>
#include <vector>
namespace llvm {
class Triple;
namespace AArch64 {
struct ArchInfo;
struct CpuInfo;
#include "llvm/TargetParser/AArch64CPUFeatures.inc"
static_assert …;
#define EMIT_ARCHEXTKIND_ENUM
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
ExtensionBitset;
struct ExtensionInfo { … };
#define EMIT_EXTENSIONS
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
struct FMVInfo { … };
const std::vector<FMVInfo> &getFMVInfo();
struct ExtensionDependency { … };
#define EMIT_EXTENSION_DEPENDENCIES
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
enum ArchProfile { … };
struct ArchInfo { … };
#define EMIT_ARCHITECTURES
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
struct CpuInfo { … };
#define EMIT_CPU_INFO
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
struct ExtensionSet { … };
struct Alias { … };
#define EMIT_CPU_ALIAS
#include "llvm/TargetParser/AArch64TargetParserDef.inc"
const ExtensionInfo &getExtensionByID(ArchExtKind(ExtID));
bool getExtensionFeatures(
const AArch64::ExtensionBitset &Extensions,
std::vector<StringRef> &Features);
StringRef getArchExtFeature(StringRef ArchExt);
StringRef resolveCPUAlias(StringRef CPU);
const ArchInfo *getArchForCpu(StringRef CPU);
const ArchInfo *parseArch(StringRef Arch);
std::optional<ExtensionInfo> targetFeatureToExtension(StringRef TargetFeature);
std::optional<ExtensionInfo> parseArchExtension(StringRef Extension);
std::optional<FMVInfo> parseFMVExtension(StringRef Extension);
std::optional<CpuInfo> parseCpu(StringRef Name);
void fillValidCPUArchList(SmallVectorImpl<StringRef> &Values);
bool isX18ReservedByDefault(const Triple &TT);
uint64_t getCpuSupportsMask(ArrayRef<StringRef> FeatureStrs);
void PrintSupportedExtensions();
void printEnabledExtensions(const std::set<StringRef> &EnabledFeatureNames);
}
}
#endif