#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
#include <string>
namespace llvm {
class raw_ostream;
class RecordKeeper;
}
namespace clang {
void EmitClangDeclContext(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS);
void EmitClangASTNodes(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS,
const std::string &N, const std::string &S,
std::string_view PriorizeIfSubclassOf = "");
void EmitClangBasicReader(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangBasicWriter(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangTypeNodes(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangTypeReader(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangTypeWriter(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrParserStringSwitches(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrSubjectMatchRulesParserStringSwitches(
const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitClangAttrClass(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrImpl(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrList(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrSubjectMatchRuleList(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrPCHRead(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrPCHWrite(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangRegularKeywordAttributeInfo(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrHasAttrImpl(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrSpellingListIndex(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrASTVisitor(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrTemplateInstantiate(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrParsedAttrList(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrParsedAttrImpl(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrParsedAttrKinds(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrTextNodeDump(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrNodeTraverse(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrDocTable(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangBuiltins(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangDiagsDefs(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS, const std::string &Component);
void EmitClangDiagGroups(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangDiagsIndexName(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangSACheckers(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangCommentHTMLTags(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangCommentHTMLTagsProperties(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangCommentHTMLNamedCharacterReferences(
const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitClangCommentCommandInfo(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangCommentCommandList(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangOpcodes(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitClangSyntaxNodeList(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangSyntaxNodeClasses(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitNeon(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitFP16(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitBF16(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitNeonSema(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitVectorTypes(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitNeonTest(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitImmCheckTypes(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitSveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSveBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSveTypeFlags(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSveRangeChecks(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitSveStreamingAttrs(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitSmeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSmeBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSmeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitSmeRangeChecks(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitSmeStreamingAttrs(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitSmeBuiltinZAState(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitMveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitMveBuiltinDef(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitMveBuiltinSema(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitMveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitMveBuiltinAliases(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitRVVHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitRVVBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitRVVBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitRVVBuiltinSema(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitCdeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitCdeBuiltinDef(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitCdeBuiltinSema(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitCdeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitCdeBuiltinAliases(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangAttrDocs(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangDiagDocs(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangOptDocs(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
void EmitClangOpenCLBuiltins(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangOpenCLBuiltinHeader(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangOpenCLBuiltinTests(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitClangDataCollectors(const llvm::RecordKeeper &Records,
llvm::raw_ostream &OS);
void EmitTestPragmaAttributeSupportedAttributes(
const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
}
#endif