//==-- LoongArch64TargetParser - Parser for LoongArch64 features --*- C++ -*-=// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file implements a target parser to recognise LoongArch hardware features // such as CPU/ARCH and extension names. // //===----------------------------------------------------------------------===// #ifndef LLVM_TARGETPARSER_LOONGARCHTARGETPARSER_H #define LLVM_TARGETPARSER_LOONGARCHTARGETPARSER_H #include "llvm/TargetParser/Triple.h" #include <vector> namespace llvm { class StringRef; namespace LoongArch { enum FeatureKind : uint32_t { … }; struct FeatureInfo { … }; enum class ArchKind { … }; struct ArchInfo { … }; 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); } // namespace LoongArch } // namespace llvm #endif // LLVM_TARGETPARSER_LOONGARCHTARGETPARSER_H