Path: blob/main/contrib/llvm-project/clang/utils/TableGen/TableGenBackends.h
35230 views
//===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file contains the declarations for all of the Clang TableGen9// backends. A "TableGen backend" is just a function. See10// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.11//12//===----------------------------------------------------------------------===//1314#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H15#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H1617#include <string>1819namespace llvm {20class raw_ostream;21class RecordKeeper;22} // namespace llvm2324namespace clang {2526void EmitClangDeclContext(llvm::RecordKeeper &RK, llvm::raw_ostream &OS);27/**28@param PriorizeIfSubclassOf These classes should be prioritized in the output.29This is useful to force enum generation/jump tables/lookup tables to be more30compact in both size and surrounding code in hot functions. An example use is31in Decl for classes that inherit from DeclContext, for functions like32castFromDeclContext.33*/34void EmitClangASTNodes(llvm::RecordKeeper &RK, llvm::raw_ostream &OS,35const std::string &N, const std::string &S,36std::string_view PriorizeIfSubclassOf = "");37void EmitClangBasicReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);38void EmitClangBasicWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);39void EmitClangTypeNodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);40void EmitClangTypeReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);41void EmitClangTypeWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);42void EmitClangAttrParserStringSwitches(llvm::RecordKeeper &Records,43llvm::raw_ostream &OS);44void EmitClangAttrSubjectMatchRulesParserStringSwitches(45llvm::RecordKeeper &Records, llvm::raw_ostream &OS);46void EmitClangAttrClass(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);47void EmitClangAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);48void EmitClangAttrList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);49void EmitClangAttrSubjectMatchRuleList(llvm::RecordKeeper &Records,50llvm::raw_ostream &OS);51void EmitClangAttrPCHRead(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);52void EmitClangAttrPCHWrite(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);53void EmitClangRegularKeywordAttributeInfo(llvm::RecordKeeper &Records,54llvm::raw_ostream &OS);55void EmitClangAttrHasAttrImpl(llvm::RecordKeeper &Records,56llvm::raw_ostream &OS);57void EmitClangAttrSpellingListIndex(llvm::RecordKeeper &Records,58llvm::raw_ostream &OS);59void EmitClangAttrASTVisitor(llvm::RecordKeeper &Records,60llvm::raw_ostream &OS);61void EmitClangAttrTemplateInstantiate(llvm::RecordKeeper &Records,62llvm::raw_ostream &OS);63void EmitClangAttrParsedAttrList(llvm::RecordKeeper &Records,64llvm::raw_ostream &OS);65void EmitClangAttrParsedAttrImpl(llvm::RecordKeeper &Records,66llvm::raw_ostream &OS);67void EmitClangAttrParsedAttrKinds(llvm::RecordKeeper &Records,68llvm::raw_ostream &OS);69void EmitClangAttrTextNodeDump(llvm::RecordKeeper &Records,70llvm::raw_ostream &OS);71void EmitClangAttrNodeTraverse(llvm::RecordKeeper &Records,72llvm::raw_ostream &OS);73void EmitClangAttrDocTable(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);7475void EmitClangBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);7677void EmitClangDiagsDefs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS,78const std::string &Component);79void EmitClangDiagGroups(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);80void EmitClangDiagsIndexName(llvm::RecordKeeper &Records,81llvm::raw_ostream &OS);8283void EmitClangSACheckers(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);8485void EmitClangCommentHTMLTags(llvm::RecordKeeper &Records,86llvm::raw_ostream &OS);87void EmitClangCommentHTMLTagsProperties(llvm::RecordKeeper &Records,88llvm::raw_ostream &OS);89void EmitClangCommentHTMLNamedCharacterReferences(llvm::RecordKeeper &Records,90llvm::raw_ostream &OS);9192void EmitClangCommentCommandInfo(llvm::RecordKeeper &Records,93llvm::raw_ostream &OS);94void EmitClangCommentCommandList(llvm::RecordKeeper &Records,95llvm::raw_ostream &OS);96void EmitClangOpcodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);9798void EmitClangSyntaxNodeList(llvm::RecordKeeper &Records,99llvm::raw_ostream &OS);100void EmitClangSyntaxNodeClasses(llvm::RecordKeeper &Records,101llvm::raw_ostream &OS);102103void EmitNeon(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);104void EmitFP16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);105void EmitBF16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);106void EmitNeonSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);107void EmitVectorTypes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);108void EmitNeonTest(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);109110void EmitSveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);111void EmitSveBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);112void EmitSveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);113void EmitSveTypeFlags(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);114void EmitSveRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);115void EmitSveStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);116117void EmitSmeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);118void EmitSmeBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);119void EmitSmeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);120void EmitSmeRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);121void EmitSmeStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);122void EmitSmeBuiltinZAState(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);123124void EmitMveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);125void EmitMveBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);126void EmitMveBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);127void EmitMveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);128void EmitMveBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);129130void EmitRVVHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);131void EmitRVVBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);132void EmitRVVBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);133void EmitRVVBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);134135void EmitCdeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);136void EmitCdeBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);137void EmitCdeBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);138void EmitCdeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);139void EmitCdeBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);140141void EmitClangAttrDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);142void EmitClangDiagDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);143void EmitClangOptDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);144145void EmitClangOpenCLBuiltins(llvm::RecordKeeper &Records,146llvm::raw_ostream &OS);147void EmitClangOpenCLBuiltinHeader(llvm::RecordKeeper &Records,148llvm::raw_ostream &OS);149void EmitClangOpenCLBuiltinTests(llvm::RecordKeeper &Records,150llvm::raw_ostream &OS);151152void EmitClangDataCollectors(llvm::RecordKeeper &Records,153llvm::raw_ostream &OS);154155void EmitTestPragmaAttributeSupportedAttributes(llvm::RecordKeeper &Records,156llvm::raw_ostream &OS);157158} // end namespace clang159160#endif161162163