mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 09:16:06 +00:00
201 lines
10 KiB
C++
201 lines
10 KiB
C++
//===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===//
|
|
//
|
|
// 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 contains the declarations for all of the Clang TableGen
|
|
// backends. A "TableGen backend" is just a function. See
|
|
// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
|
|
#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
|
|
|
|
#include <string>
|
|
|
|
namespace llvm {
|
|
class raw_ostream;
|
|
class RecordKeeper;
|
|
} // namespace llvm
|
|
|
|
namespace clang {
|
|
|
|
void EmitClangDeclContext(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS);
|
|
/**
|
|
@param PriorizeIfSubclassOf These classes should be prioritized in the output.
|
|
This is useful to force enum generation/jump tables/lookup tables to be more
|
|
compact in both size and surrounding code in hot functions. An example use is
|
|
in Decl for classes that inherit from DeclContext, for functions like
|
|
castFromDeclContext.
|
|
*/
|
|
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 EmitCXX11AttributeInfo(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 EmitClangBuiltinTemplates(const llvm::RecordKeeper &Records,
|
|
llvm::raw_ostream &OS);
|
|
|
|
void EmitClangDiagsCompatIDs(const llvm::RecordKeeper &Records,
|
|
llvm::raw_ostream &OS,
|
|
const std::string &Component);
|
|
void EmitClangDiagsDefs(const llvm::RecordKeeper &Records,
|
|
llvm::raw_ostream &OS, const std::string &Component);
|
|
void EmitClangDiagsEnums(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);
|
|
|
|
} // end namespace clang
|
|
|
|
#endif
|