brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.8 KiB · 058bda3 Raw
212 lines · c
1//===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the declarations for all of the Clang TableGen10// backends. A "TableGen backend" is just a function. See11// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.12//13//===----------------------------------------------------------------------===//14 15#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H16#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H17 18#include <string>19 20namespace llvm {21class raw_ostream;22class RecordKeeper;23} // namespace llvm24 25namespace clang {26 27void EmitCIRLowering(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS);28void EmitClangDeclContext(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS);29/**30  @param PriorizeIfSubclassOf These classes should be prioritized in the output.31  This is useful to force enum generation/jump tables/lookup tables to be more32  compact in both size and surrounding code in hot functions. An example use is33  in Decl for classes that inherit from DeclContext, for functions like34  castFromDeclContext.35  */36void EmitClangASTNodes(const llvm::RecordKeeper &RK, llvm::raw_ostream &OS,37                       const std::string &N, const std::string &S,38                       std::string_view PriorizeIfSubclassOf = "");39void EmitClangBasicReader(const llvm::RecordKeeper &Records,40                          llvm::raw_ostream &OS);41void EmitClangBasicWriter(const llvm::RecordKeeper &Records,42                          llvm::raw_ostream &OS);43void EmitClangTypeNodes(const llvm::RecordKeeper &Records,44                        llvm::raw_ostream &OS);45void EmitClangTypeReader(const llvm::RecordKeeper &Records,46                         llvm::raw_ostream &OS);47void EmitClangTypeWriter(const llvm::RecordKeeper &Records,48                         llvm::raw_ostream &OS);49void EmitClangAttrParserStringSwitches(const llvm::RecordKeeper &Records,50                                       llvm::raw_ostream &OS);51void EmitClangAttrSubjectMatchRulesParserStringSwitches(52    const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);53void EmitCXX11AttributeInfo(const llvm::RecordKeeper &Records,54                            llvm::raw_ostream &OS);55void EmitAttributeSpellingList(const llvm::RecordKeeper &Records,56                               llvm::raw_ostream &OS);57void EmitClangAttrClass(const llvm::RecordKeeper &Records,58                        llvm::raw_ostream &OS);59void EmitClangAttrImpl(const llvm::RecordKeeper &Records,60                       llvm::raw_ostream &OS);61void EmitClangAttrList(const llvm::RecordKeeper &Records,62                       llvm::raw_ostream &OS);63void EmitClangAttrSubjectMatchRuleList(const llvm::RecordKeeper &Records,64                                       llvm::raw_ostream &OS);65void EmitClangAttrPCHRead(const llvm::RecordKeeper &Records,66                          llvm::raw_ostream &OS);67void EmitClangAttrPCHWrite(const llvm::RecordKeeper &Records,68                           llvm::raw_ostream &OS);69void EmitClangRegularKeywordAttributeInfo(const llvm::RecordKeeper &Records,70                                          llvm::raw_ostream &OS);71void EmitClangAttrHasAttrImpl(const llvm::RecordKeeper &Records,72                              llvm::raw_ostream &OS);73void EmitClangAttrSpellingListIndex(const llvm::RecordKeeper &Records,74                                    llvm::raw_ostream &OS);75void EmitClangAttrASTVisitor(const llvm::RecordKeeper &Records,76                             llvm::raw_ostream &OS);77void EmitClangAttrTemplateInstantiate(const llvm::RecordKeeper &Records,78                                      llvm::raw_ostream &OS);79void EmitClangAttrParsedAttrList(const llvm::RecordKeeper &Records,80                                 llvm::raw_ostream &OS);81void EmitClangAttrParsedAttrImpl(const llvm::RecordKeeper &Records,82                                 llvm::raw_ostream &OS);83void EmitClangAttrParsedAttrKinds(const llvm::RecordKeeper &Records,84                                  llvm::raw_ostream &OS);85void EmitClangAttrIsTypeDependent(const llvm::RecordKeeper &Records,86                                  llvm::raw_ostream &OS);87void EmitClangAttrTextNodeDump(const llvm::RecordKeeper &Records,88                               llvm::raw_ostream &OS);89void EmitClangAttrNodeTraverse(const llvm::RecordKeeper &Records,90                               llvm::raw_ostream &OS);91void EmitClangAttrDocTable(const llvm::RecordKeeper &Records,92                           llvm::raw_ostream &OS);93 94void EmitClangBuiltins(const llvm::RecordKeeper &Records,95                       llvm::raw_ostream &OS);96void EmitClangBuiltinTemplates(const llvm::RecordKeeper &Records,97                               llvm::raw_ostream &OS);98 99void EmitClangDiagsCompatIDs(const llvm::RecordKeeper &Records,100                             llvm::raw_ostream &OS,101                             const std::string &Component);102void EmitClangDiagsDefs(const llvm::RecordKeeper &Records,103                        llvm::raw_ostream &OS, const std::string &Component);104void EmitClangDiagsEnums(const llvm::RecordKeeper &Records,105                         llvm::raw_ostream &OS, const std::string &Component);106void EmitClangDiagGroups(const llvm::RecordKeeper &Records,107                         llvm::raw_ostream &OS);108void EmitClangDiagsIndexName(const llvm::RecordKeeper &Records,109                             llvm::raw_ostream &OS);110void EmitClangDiagsInterface(llvm::raw_ostream &OS,111                             const std::string &Component);112 113void EmitClangSACheckers(const llvm::RecordKeeper &Records,114                         llvm::raw_ostream &OS);115 116void EmitClangCommentHTMLTags(const llvm::RecordKeeper &Records,117                              llvm::raw_ostream &OS);118void EmitClangCommentHTMLTagsProperties(const llvm::RecordKeeper &Records,119                                        llvm::raw_ostream &OS);120void EmitClangCommentHTMLNamedCharacterReferences(121    const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);122 123void EmitClangCommentCommandInfo(const llvm::RecordKeeper &Records,124                                 llvm::raw_ostream &OS);125void EmitClangCommentCommandList(const llvm::RecordKeeper &Records,126                                 llvm::raw_ostream &OS);127void EmitClangOpcodes(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);128 129void EmitClangSyntaxNodeList(const llvm::RecordKeeper &Records,130                             llvm::raw_ostream &OS);131void EmitClangSyntaxNodeClasses(const llvm::RecordKeeper &Records,132                                llvm::raw_ostream &OS);133 134void EmitNeon(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);135void EmitFP16(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);136void EmitBF16(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);137void EmitNeonSema(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);138void EmitVectorTypes(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);139void EmitNeonTest(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);140 141void EmitImmCheckTypes(const llvm::RecordKeeper &Records,142                       llvm::raw_ostream &OS);143void EmitSveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);144void EmitSveBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);145void EmitSveBuiltinsJSON(const llvm::RecordKeeper &Records,146                         llvm::raw_ostream &OS);147void EmitSveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);148void EmitSveTypeFlags(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);149void EmitSveRangeChecks(const llvm::RecordKeeper &Records,150                        llvm::raw_ostream &OS);151void EmitSveStreamingAttrs(const llvm::RecordKeeper &Records,152                           llvm::raw_ostream &OS);153 154void EmitSmeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);155void EmitSmeBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);156void EmitSmeBuiltinsJSON(const llvm::RecordKeeper &Records,157                         llvm::raw_ostream &OS);158void EmitSmeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);159void EmitSmeRangeChecks(const llvm::RecordKeeper &Records,160                        llvm::raw_ostream &OS);161void EmitSmeStreamingAttrs(const llvm::RecordKeeper &Records,162                           llvm::raw_ostream &OS);163void EmitSmeBuiltinZAState(const llvm::RecordKeeper &Records,164                           llvm::raw_ostream &OS);165 166void EmitMveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);167void EmitMveBuiltinDef(const llvm::RecordKeeper &Records,168                       llvm::raw_ostream &OS);169void EmitMveBuiltinSema(const llvm::RecordKeeper &Records,170                        llvm::raw_ostream &OS);171void EmitMveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);172void EmitMveBuiltinAliases(const llvm::RecordKeeper &Records,173                           llvm::raw_ostream &OS);174 175void EmitRVVHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);176void EmitRVVBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);177void EmitRVVBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);178void EmitRVVBuiltinSema(const llvm::RecordKeeper &Records,179                        llvm::raw_ostream &OS);180 181void EmitCdeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);182void EmitCdeBuiltinDef(const llvm::RecordKeeper &Records,183                       llvm::raw_ostream &OS);184void EmitCdeBuiltinSema(const llvm::RecordKeeper &Records,185                        llvm::raw_ostream &OS);186void EmitCdeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);187void EmitCdeBuiltinAliases(const llvm::RecordKeeper &Records,188                           llvm::raw_ostream &OS);189 190void EmitClangAttrDocs(const llvm::RecordKeeper &Records,191                       llvm::raw_ostream &OS);192void EmitClangDiagDocs(const llvm::RecordKeeper &Records,193                       llvm::raw_ostream &OS);194void EmitClangOptDocs(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);195 196void EmitClangOpenCLBuiltins(const llvm::RecordKeeper &Records,197                             llvm::raw_ostream &OS);198void EmitClangOpenCLBuiltinHeader(const llvm::RecordKeeper &Records,199                                  llvm::raw_ostream &OS);200void EmitClangOpenCLBuiltinTests(const llvm::RecordKeeper &Records,201                                 llvm::raw_ostream &OS);202 203void EmitClangDataCollectors(const llvm::RecordKeeper &Records,204                             llvm::raw_ostream &OS);205 206void EmitTestPragmaAttributeSupportedAttributes(207    const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);208 209} // end namespace clang210 211#endif212