1e5dd7070Spatrick //===- TableGenBackends.h - Declarations for Clang TableGen Backends ------===// 2e5dd7070Spatrick // 3e5dd7070Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e5dd7070Spatrick // See https://llvm.org/LICENSE.txt for license information. 5e5dd7070Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e5dd7070Spatrick // 7e5dd7070Spatrick //===----------------------------------------------------------------------===// 8e5dd7070Spatrick // 9e5dd7070Spatrick // This file contains the declarations for all of the Clang TableGen 10e5dd7070Spatrick // backends. A "TableGen backend" is just a function. See 11e5dd7070Spatrick // "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info. 12e5dd7070Spatrick // 13e5dd7070Spatrick //===----------------------------------------------------------------------===// 14e5dd7070Spatrick 15e5dd7070Spatrick #ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 16e5dd7070Spatrick #define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H 17e5dd7070Spatrick 18e5dd7070Spatrick #include <string> 19e5dd7070Spatrick 20e5dd7070Spatrick namespace llvm { 21e5dd7070Spatrick class raw_ostream; 22e5dd7070Spatrick class RecordKeeper; 23e5dd7070Spatrick } // namespace llvm 24e5dd7070Spatrick 25e5dd7070Spatrick namespace clang { 26e5dd7070Spatrick 27e5dd7070Spatrick void EmitClangDeclContext(llvm::RecordKeeper &RK, llvm::raw_ostream &OS); 28e5dd7070Spatrick void EmitClangASTNodes(llvm::RecordKeeper &RK, llvm::raw_ostream &OS, 29e5dd7070Spatrick const std::string &N, const std::string &S); 30e5dd7070Spatrick void EmitClangBasicReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 31e5dd7070Spatrick void EmitClangBasicWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 32e5dd7070Spatrick void EmitClangTypeNodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 33e5dd7070Spatrick void EmitClangTypeReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 34e5dd7070Spatrick void EmitClangTypeWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 35e5dd7070Spatrick void EmitClangAttrParserStringSwitches(llvm::RecordKeeper &Records, 36e5dd7070Spatrick llvm::raw_ostream &OS); 37e5dd7070Spatrick void EmitClangAttrSubjectMatchRulesParserStringSwitches( 38e5dd7070Spatrick llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 39e5dd7070Spatrick void EmitClangAttrClass(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 40e5dd7070Spatrick void EmitClangAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 41e5dd7070Spatrick void EmitClangAttrList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 42e5dd7070Spatrick void EmitClangAttrSubjectMatchRuleList(llvm::RecordKeeper &Records, 43e5dd7070Spatrick llvm::raw_ostream &OS); 44e5dd7070Spatrick void EmitClangAttrPCHRead(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 45e5dd7070Spatrick void EmitClangAttrPCHWrite(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 46e5dd7070Spatrick void EmitClangAttrHasAttrImpl(llvm::RecordKeeper &Records, 47e5dd7070Spatrick llvm::raw_ostream &OS); 48e5dd7070Spatrick void EmitClangAttrSpellingListIndex(llvm::RecordKeeper &Records, 49e5dd7070Spatrick llvm::raw_ostream &OS); 50e5dd7070Spatrick void EmitClangAttrASTVisitor(llvm::RecordKeeper &Records, 51e5dd7070Spatrick llvm::raw_ostream &OS); 52e5dd7070Spatrick void EmitClangAttrTemplateInstantiate(llvm::RecordKeeper &Records, 53e5dd7070Spatrick llvm::raw_ostream &OS); 54e5dd7070Spatrick void EmitClangAttrParsedAttrList(llvm::RecordKeeper &Records, 55e5dd7070Spatrick llvm::raw_ostream &OS); 56e5dd7070Spatrick void EmitClangAttrParsedAttrImpl(llvm::RecordKeeper &Records, 57e5dd7070Spatrick llvm::raw_ostream &OS); 58e5dd7070Spatrick void EmitClangAttrParsedAttrKinds(llvm::RecordKeeper &Records, 59e5dd7070Spatrick llvm::raw_ostream &OS); 60e5dd7070Spatrick void EmitClangAttrTextNodeDump(llvm::RecordKeeper &Records, 61e5dd7070Spatrick llvm::raw_ostream &OS); 62e5dd7070Spatrick void EmitClangAttrNodeTraverse(llvm::RecordKeeper &Records, 63e5dd7070Spatrick llvm::raw_ostream &OS); 64*12c85518Srobert void EmitClangAttrDocTable(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 65e5dd7070Spatrick 66e5dd7070Spatrick void EmitClangDiagsDefs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS, 67e5dd7070Spatrick const std::string &Component); 68e5dd7070Spatrick void EmitClangDiagGroups(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 69e5dd7070Spatrick void EmitClangDiagsIndexName(llvm::RecordKeeper &Records, 70e5dd7070Spatrick llvm::raw_ostream &OS); 71e5dd7070Spatrick 72e5dd7070Spatrick void EmitClangSACheckers(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 73e5dd7070Spatrick 74e5dd7070Spatrick void EmitClangCommentHTMLTags(llvm::RecordKeeper &Records, 75e5dd7070Spatrick llvm::raw_ostream &OS); 76e5dd7070Spatrick void EmitClangCommentHTMLTagsProperties(llvm::RecordKeeper &Records, 77e5dd7070Spatrick llvm::raw_ostream &OS); 78e5dd7070Spatrick void EmitClangCommentHTMLNamedCharacterReferences(llvm::RecordKeeper &Records, 79e5dd7070Spatrick llvm::raw_ostream &OS); 80e5dd7070Spatrick 81e5dd7070Spatrick void EmitClangCommentCommandInfo(llvm::RecordKeeper &Records, 82e5dd7070Spatrick llvm::raw_ostream &OS); 83e5dd7070Spatrick void EmitClangCommentCommandList(llvm::RecordKeeper &Records, 84e5dd7070Spatrick llvm::raw_ostream &OS); 85e5dd7070Spatrick void EmitClangOpcodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 86e5dd7070Spatrick 87a9ac8606Spatrick void EmitClangSyntaxNodeList(llvm::RecordKeeper &Records, 88a9ac8606Spatrick llvm::raw_ostream &OS); 89a9ac8606Spatrick void EmitClangSyntaxNodeClasses(llvm::RecordKeeper &Records, 90a9ac8606Spatrick llvm::raw_ostream &OS); 91a9ac8606Spatrick 92e5dd7070Spatrick void EmitNeon(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 93e5dd7070Spatrick void EmitFP16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 94ec727ea7Spatrick void EmitBF16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 95e5dd7070Spatrick void EmitNeonSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 96e5dd7070Spatrick void EmitNeonTest(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 97e5dd7070Spatrick 98ec727ea7Spatrick void EmitSveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 99ec727ea7Spatrick void EmitSveBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 100ec727ea7Spatrick void EmitSveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 101ec727ea7Spatrick void EmitSveTypeFlags(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 102ec727ea7Spatrick void EmitSveRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 103ec727ea7Spatrick 104e5dd7070Spatrick void EmitMveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 105e5dd7070Spatrick void EmitMveBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 106e5dd7070Spatrick void EmitMveBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 107e5dd7070Spatrick void EmitMveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 108e5dd7070Spatrick void EmitMveBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 109e5dd7070Spatrick 110a9ac8606Spatrick void EmitRVVHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 111a9ac8606Spatrick void EmitRVVBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 112a9ac8606Spatrick void EmitRVVBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 113*12c85518Srobert void EmitRVVBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 114a9ac8606Spatrick 115ec727ea7Spatrick void EmitCdeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 116ec727ea7Spatrick void EmitCdeBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 117ec727ea7Spatrick void EmitCdeBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 118ec727ea7Spatrick void EmitCdeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 119ec727ea7Spatrick void EmitCdeBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 120ec727ea7Spatrick 121e5dd7070Spatrick void EmitClangAttrDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 122e5dd7070Spatrick void EmitClangDiagDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 123e5dd7070Spatrick void EmitClangOptDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS); 124e5dd7070Spatrick 125e5dd7070Spatrick void EmitClangOpenCLBuiltins(llvm::RecordKeeper &Records, 126e5dd7070Spatrick llvm::raw_ostream &OS); 127a9ac8606Spatrick void EmitClangOpenCLBuiltinTests(llvm::RecordKeeper &Records, 128a9ac8606Spatrick llvm::raw_ostream &OS); 129e5dd7070Spatrick 130e5dd7070Spatrick void EmitClangDataCollectors(llvm::RecordKeeper &Records, 131e5dd7070Spatrick llvm::raw_ostream &OS); 132e5dd7070Spatrick 133e5dd7070Spatrick void EmitTestPragmaAttributeSupportedAttributes(llvm::RecordKeeper &Records, 134e5dd7070Spatrick llvm::raw_ostream &OS); 135e5dd7070Spatrick 136e5dd7070Spatrick } // end namespace clang 137e5dd7070Spatrick 138e5dd7070Spatrick #endif 139