xref: /openbsd-src/gnu/llvm/clang/utils/TableGen/TableGenBackends.h (revision 12c855180aad702bbcca06e0398d774beeafb155)
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