Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/clang/utils/TableGen/TableGenBackends.h
35230 views
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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains the declarations for all of the Clang TableGen
10
// backends. A "TableGen backend" is just a function. See
11
// "$LLVM_ROOT/utils/TableGen/TableGenBackends.h" for more info.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
16
#define LLVM_CLANG_UTILS_TABLEGEN_TABLEGENBACKENDS_H
17
18
#include <string>
19
20
namespace llvm {
21
class raw_ostream;
22
class RecordKeeper;
23
} // namespace llvm
24
25
namespace clang {
26
27
void EmitClangDeclContext(llvm::RecordKeeper &RK, llvm::raw_ostream &OS);
28
/**
29
@param PriorizeIfSubclassOf These classes should be prioritized in the output.
30
This is useful to force enum generation/jump tables/lookup tables to be more
31
compact in both size and surrounding code in hot functions. An example use is
32
in Decl for classes that inherit from DeclContext, for functions like
33
castFromDeclContext.
34
*/
35
void EmitClangASTNodes(llvm::RecordKeeper &RK, llvm::raw_ostream &OS,
36
const std::string &N, const std::string &S,
37
std::string_view PriorizeIfSubclassOf = "");
38
void EmitClangBasicReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
39
void EmitClangBasicWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
40
void EmitClangTypeNodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
41
void EmitClangTypeReader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
42
void EmitClangTypeWriter(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
43
void EmitClangAttrParserStringSwitches(llvm::RecordKeeper &Records,
44
llvm::raw_ostream &OS);
45
void EmitClangAttrSubjectMatchRulesParserStringSwitches(
46
llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
47
void EmitClangAttrClass(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
48
void EmitClangAttrImpl(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
49
void EmitClangAttrList(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
50
void EmitClangAttrSubjectMatchRuleList(llvm::RecordKeeper &Records,
51
llvm::raw_ostream &OS);
52
void EmitClangAttrPCHRead(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
53
void EmitClangAttrPCHWrite(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
54
void EmitClangRegularKeywordAttributeInfo(llvm::RecordKeeper &Records,
55
llvm::raw_ostream &OS);
56
void EmitClangAttrHasAttrImpl(llvm::RecordKeeper &Records,
57
llvm::raw_ostream &OS);
58
void EmitClangAttrSpellingListIndex(llvm::RecordKeeper &Records,
59
llvm::raw_ostream &OS);
60
void EmitClangAttrASTVisitor(llvm::RecordKeeper &Records,
61
llvm::raw_ostream &OS);
62
void EmitClangAttrTemplateInstantiate(llvm::RecordKeeper &Records,
63
llvm::raw_ostream &OS);
64
void EmitClangAttrParsedAttrList(llvm::RecordKeeper &Records,
65
llvm::raw_ostream &OS);
66
void EmitClangAttrParsedAttrImpl(llvm::RecordKeeper &Records,
67
llvm::raw_ostream &OS);
68
void EmitClangAttrParsedAttrKinds(llvm::RecordKeeper &Records,
69
llvm::raw_ostream &OS);
70
void EmitClangAttrTextNodeDump(llvm::RecordKeeper &Records,
71
llvm::raw_ostream &OS);
72
void EmitClangAttrNodeTraverse(llvm::RecordKeeper &Records,
73
llvm::raw_ostream &OS);
74
void EmitClangAttrDocTable(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
75
76
void EmitClangBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
77
78
void EmitClangDiagsDefs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS,
79
const std::string &Component);
80
void EmitClangDiagGroups(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
81
void EmitClangDiagsIndexName(llvm::RecordKeeper &Records,
82
llvm::raw_ostream &OS);
83
84
void EmitClangSACheckers(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
85
86
void EmitClangCommentHTMLTags(llvm::RecordKeeper &Records,
87
llvm::raw_ostream &OS);
88
void EmitClangCommentHTMLTagsProperties(llvm::RecordKeeper &Records,
89
llvm::raw_ostream &OS);
90
void EmitClangCommentHTMLNamedCharacterReferences(llvm::RecordKeeper &Records,
91
llvm::raw_ostream &OS);
92
93
void EmitClangCommentCommandInfo(llvm::RecordKeeper &Records,
94
llvm::raw_ostream &OS);
95
void EmitClangCommentCommandList(llvm::RecordKeeper &Records,
96
llvm::raw_ostream &OS);
97
void EmitClangOpcodes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
98
99
void EmitClangSyntaxNodeList(llvm::RecordKeeper &Records,
100
llvm::raw_ostream &OS);
101
void EmitClangSyntaxNodeClasses(llvm::RecordKeeper &Records,
102
llvm::raw_ostream &OS);
103
104
void EmitNeon(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
105
void EmitFP16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
106
void EmitBF16(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
107
void EmitNeonSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
108
void EmitVectorTypes(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
109
void EmitNeonTest(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
110
111
void EmitSveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
112
void EmitSveBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
113
void EmitSveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
114
void EmitSveTypeFlags(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
115
void EmitSveRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
116
void EmitSveStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
117
118
void EmitSmeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
119
void EmitSmeBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
120
void EmitSmeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
121
void EmitSmeRangeChecks(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
122
void EmitSmeStreamingAttrs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
123
void EmitSmeBuiltinZAState(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
124
125
void EmitMveHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
126
void EmitMveBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
127
void EmitMveBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
128
void EmitMveBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
129
void EmitMveBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
130
131
void EmitRVVHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
132
void EmitRVVBuiltins(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
133
void EmitRVVBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
134
void EmitRVVBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
135
136
void EmitCdeHeader(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
137
void EmitCdeBuiltinDef(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
138
void EmitCdeBuiltinSema(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
139
void EmitCdeBuiltinCG(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
140
void EmitCdeBuiltinAliases(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
141
142
void EmitClangAttrDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
143
void EmitClangDiagDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
144
void EmitClangOptDocs(llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
145
146
void EmitClangOpenCLBuiltins(llvm::RecordKeeper &Records,
147
llvm::raw_ostream &OS);
148
void EmitClangOpenCLBuiltinHeader(llvm::RecordKeeper &Records,
149
llvm::raw_ostream &OS);
150
void EmitClangOpenCLBuiltinTests(llvm::RecordKeeper &Records,
151
llvm::raw_ostream &OS);
152
153
void EmitClangDataCollectors(llvm::RecordKeeper &Records,
154
llvm::raw_ostream &OS);
155
156
void EmitTestPragmaAttributeSupportedAttributes(llvm::RecordKeeper &Records,
157
llvm::raw_ostream &OS);
158
159
} // end namespace clang
160
161
#endif
162
163