xref: /aosp_15_r20/external/angle/third_party/clspv/gn/llvm/tablegen/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1# This setups the tablegen build targets that the LLVM and Clang libs depend on.
2
3import("//build_overrides/clspv.gni")
4
5import("tablegen.gni")
6
7# For llvm/lib/CodeGen
8tablegen("GenVT") {
9  args = [ "-gen-vt" ]
10  td_file = "//$clspv_llvm_dir/llvm/include/llvm/CodeGen/ValueTypes.td"
11  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
12  output_name = "$clspv_llvm_dir/llvm/CodeGen/GenVT.inc"
13}
14
15# from llvm/include/llvm/TargetParser
16tablegen("RISCVTargetParserDef") {
17  args = [ "-gen-riscv-target-def" ]
18  td_file = "//$clspv_llvm_dir/llvm/lib/Target/RISCV/RISCV.td"
19  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
20  output_name = "$clspv_llvm_dir/llvm/TargetParser/RISCVTargetParserDef.inc"
21}
22
23# from llvm/include/llvm/Frontend/OpenMP
24tablegen("OMPh") {
25  #visibility = [ ":public_tablegen" ]
26  args = [ "-gen-directive-decl" ]
27  output_name = "$clspv_llvm_dir/llvm/Frontend/OpenMP/OMP.h.inc"
28  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
29  td_file = "//$clspv_llvm_dir/llvm/include/llvm/Frontend/OpenMP/OMP.td"
30}
31
32tablegen("OMP") {
33  #visibility = [ ":public_tablegen" ]
34  args = [ "-gen-directive-impl" ]
35  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
36  td_file = "//$clspv_llvm_dir/llvm/include/llvm/Frontend/OpenMP/OMP.td"
37  output_name = "$clspv_llvm_dir/llvm/Frontend/OpenMP/OMP.inc"
38}
39
40# from llvm/include/llvm/IR
41tablegen("Attributes") {
42  #visibility = [ ":public_tablegen" ]
43  args = [ "-gen-attrs" ]
44  td_file = "//$clspv_llvm_dir/llvm/include/llvm/IR/Attributes.td"
45  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
46  output_name = "$clspv_llvm_dir/llvm/IR/Attributes.inc"
47}
48
49tablegen("IntrinsicImpl") {
50  args = [ "-gen-intrinsic-impl" ]
51  td_file = "//$clspv_llvm_dir/llvm/include/llvm/IR/Intrinsics.td"
52  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
53  output_name = "$clspv_llvm_dir/llvm/IR/IntrinsicImpl.inc"
54}
55
56tablegen("IntrinsicEnums") {
57  #visibility = [ ":public_tablegen" ]
58  args = [ "-gen-intrinsic-enums" ]
59  td_file = "//$clspv_llvm_dir/llvm/include/llvm/IR/Intrinsics.td"
60  tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
61  output_name = "$clspv_llvm_dir/llvm/IR/IntrinsicEnums.inc"
62}
63
64template("gen_arch_intrinsics") {
65  tablegen(target_name) {
66    #visibility = [ ":public_tablegen" ]
67    args = [
68      "-gen-intrinsic-enums",
69      "-intrinsic-prefix=${invoker.intrinsic_prefix}",
70    ]
71    td_file = "//$clspv_llvm_dir/llvm/include/llvm/IR/Intrinsics.td"
72    tblgen_target = "../tools:clspv-tool-llvm-min-tblgen"
73    output_name = "$clspv_llvm_dir/llvm/IR/$target_name.h"
74  }
75}
76
77gen_arch_intrinsics("IntrinsicsAArch64") {
78  intrinsic_prefix = "aarch64"
79}
80
81gen_arch_intrinsics("IntrinsicsAMDGPU") {
82  intrinsic_prefix = "amdgcn"
83}
84
85gen_arch_intrinsics("IntrinsicsARM") {
86  intrinsic_prefix = "arm"
87}
88
89gen_arch_intrinsics("IntrinsicsBPF") {
90  intrinsic_prefix = "bpf"
91}
92
93gen_arch_intrinsics("IntrinsicsDirectX") {
94  intrinsic_prefix = "dx"
95}
96
97gen_arch_intrinsics("IntrinsicsHexagon") {
98  intrinsic_prefix = "hexagon"
99}
100
101gen_arch_intrinsics("IntrinsicsLoongArch") {
102  intrinsic_prefix = "loongarch"
103}
104
105gen_arch_intrinsics("IntrinsicsMips") {
106  intrinsic_prefix = "mips"
107}
108
109gen_arch_intrinsics("IntrinsicsNVPTX") {
110  intrinsic_prefix = "nvvm"
111}
112
113gen_arch_intrinsics("IntrinsicsPowerPC") {
114  intrinsic_prefix = "ppc"
115}
116
117gen_arch_intrinsics("IntrinsicsR600") {
118  intrinsic_prefix = "r600"
119}
120
121gen_arch_intrinsics("IntrinsicsRISCV") {
122  intrinsic_prefix = "riscv"
123}
124
125gen_arch_intrinsics("IntrinsicsS390") {
126  intrinsic_prefix = "s390"
127}
128
129gen_arch_intrinsics("IntrinsicsVE") {
130  intrinsic_prefix = "ve"
131}
132
133gen_arch_intrinsics("IntrinsicsWebAssembly") {
134  intrinsic_prefix = "wasm"
135}
136
137gen_arch_intrinsics("IntrinsicsX86") {
138  intrinsic_prefix = "x86"
139}
140
141gen_arch_intrinsics("IntrinsicsXCore") {
142  intrinsic_prefix = "xcore"
143}
144
145# Groups all tablegen() calls that create .inc files that are included in
146# IR's public headers.  //llvm/lib/IR has this as a public_dep, so targets
147# depending on //llvm/lib/IR don't need to depend on this.  This exists
148# solely for targets that use IR's public headers but don't link against IR.
149group("public_tablegen") {
150  public_deps = [
151    # IR's public headers include Attributes.inc.
152    ":Attributes",
153
154    # IR's public headers include IntrinsicEnums.inc.
155    ":IntrinsicEnums",
156    ":IntrinsicImpl",
157
158    # FIXME: These are only included from .cpp files at first glance.
159    # Try removing them from the public_tablegen target.
160    ":IntrinsicsAArch64",
161    ":IntrinsicsAMDGPU",
162    ":IntrinsicsARM",
163    ":IntrinsicsBPF",
164    ":IntrinsicsDirectX",
165    ":IntrinsicsHexagon",
166    ":IntrinsicsLoongArch",
167    ":IntrinsicsMips",
168    ":IntrinsicsNVPTX",
169    ":IntrinsicsPowerPC",
170    ":IntrinsicsR600",
171    ":IntrinsicsRISCV",
172    ":IntrinsicsS390",
173    ":IntrinsicsVE",
174    ":IntrinsicsWebAssembly",
175    ":IntrinsicsX86",
176    ":IntrinsicsXCore",
177
178    # Frontend/OpenMP
179    ":OMP",
180    ":OMPh",
181  ]
182}
183
184# Clang Tablegen
185import("clang_tablegen.gni")
186
187# from clang/include/clang/AST
188clang_tablegen("Attrs") {
189  args = [ "-gen-clang-attr-classes" ]
190  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/Attr.td"
191  output_name = "$clspv_llvm_dir/clang/AST/Attrs.inc"
192}
193
194clang_tablegen("AttrImpl") {
195  args = [ "-gen-clang-attr-impl" ]
196  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/Attr.td"
197  output_name = "$clspv_llvm_dir/clang/AST/AttrImpl.inc"
198}
199
200clang_tablegen("AttrTextNodeDump") {
201  args = [ "-gen-clang-attr-text-node-dump" ]
202  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/Attr.td"
203  output_name = "$clspv_llvm_dir/clang/AST/AttrTextNodeDump.inc"
204}
205
206clang_tablegen("AttrNodeTraverse") {
207  args = [ "-gen-clang-attr-node-traverse" ]
208  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/Attr.td"
209  output_name = "$clspv_llvm_dir/clang/AST/AttrNodeTraverse.inc"
210}
211
212clang_tablegen("AttrVisitor") {
213  args = [ "-gen-clang-attr-ast-visitor" ]
214  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/Attr.td"
215  output_name = "$clspv_llvm_dir/clang/AST/AttrVisitor.inc"
216}
217
218clang_tablegen("StmtNodes") {
219  args = [ "-gen-clang-stmt-nodes" ]
220  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/StmtNodes.td"
221  output_name = "$clspv_llvm_dir/clang/AST/StmtNodes.inc"
222}
223
224clang_tablegen("DeclNodes") {
225  args = [ "-gen-clang-decl-nodes" ]
226  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/DeclNodes.td"
227  output_name = "$clspv_llvm_dir/clang/AST/DeclNodes.inc"
228}
229
230clang_tablegen("TypeNodes") {
231  args = [ "-gen-clang-type-nodes" ]
232  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/../Basic/TypeNodes.td"
233  output_name = "$clspv_llvm_dir/clang/AST/TypeNodes.inc"
234}
235
236clang_tablegen("AbstractBasicReader") {
237  args = [ "-gen-clang-basic-reader" ]
238  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/PropertiesBase.td"
239  output_name = "$clspv_llvm_dir/clang/AST/AbstractBasicReader.inc"
240}
241
242clang_tablegen("AbstractBasicWriter") {
243  args = [ "-gen-clang-basic-writer" ]
244  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/PropertiesBase.td"
245  output_name = "$clspv_llvm_dir/clang/AST/AbstractBasicWriter.inc"
246}
247
248clang_tablegen("AbstractTypeReader") {
249  args = [ "-gen-clang-type-reader" ]
250  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/TypeProperties.td"
251  output_name = "$clspv_llvm_dir/clang/AST/AbstractTypeReader.inc"
252}
253
254clang_tablegen("AbstractTypeWriter") {
255  args = [ "-gen-clang-type-writer" ]
256  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/TypeProperties.td"
257  output_name = "$clspv_llvm_dir/clang/AST/AbstractTypeWriter.inc"
258}
259
260clang_tablegen("CommentNodes") {
261  args = [ "-gen-clang-comment-nodes" ]
262  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/CommentNodes.td"
263  output_name = "$clspv_llvm_dir/clang/AST/CommentNodes.inc"
264}
265
266clang_tablegen("CommentHTMLTags") {
267  args = [ "-gen-clang-comment-html-tags" ]
268  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/CommentHTMLTags.td"
269  output_name = "$clspv_llvm_dir/clang/AST/CommentHTMLTags.inc"
270}
271
272clang_tablegen("CommentHTMLTagsProperties") {
273  args = [ "-gen-clang-comment-html-tags-properties" ]
274  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/CommentHTMLTags.td"
275  output_name = "$clspv_llvm_dir/clang/AST/CommentHTMLTagsProperties.inc"
276}
277
278clang_tablegen("CommentHTMLNamedCharacterReferences") {
279  args = [ "-gen-clang-comment-html-named-character-references" ]
280  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.td"
281  output_name =
282      "$clspv_llvm_dir/clang/AST/CommentHTMLNamedCharacterReferences.inc"
283}
284
285clang_tablegen("CommentCommandInfo") {
286  args = [ "-gen-clang-comment-command-info" ]
287  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/CommentCommands.td"
288  output_name = "$clspv_llvm_dir/clang/AST/CommentCommandInfo.inc"
289}
290
291clang_tablegen("CommentCommandList") {
292  args = [ "-gen-clang-comment-command-list" ]
293  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/CommentCommands.td"
294  output_name = "$clspv_llvm_dir/clang/AST/CommentCommandList.inc"
295}
296
297clang_tablegen("StmtDataCollectors") {
298  args = [ "-gen-clang-data-collectors" ]
299  td_file = "//$clspv_llvm_dir/clang/include/clang/AST/StmtDataCollectors.td"
300  output_name = "$clspv_llvm_dir/clang/AST/StmtDataCollectors.inc"
301}
302
303# from clang/lib/AST
304clang_tablegen("Opcodes") {
305  args = [ "-gen-clang-opcodes" ]
306  td_file = "//$clspv_llvm_dir/clang/lib/AST/Interp/Opcodes.td"
307  output_name = "$clspv_llvm_dir/clang/AST/Opcodes.inc"
308}
309
310clang_tablegen("AttrDocTable") {
311  args = [ "-gen-clang-attr-doc-table" ]
312  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
313  output_name = "$clspv_llvm_dir/clang/AST/AttrDocTable.inc"
314}
315
316# from include/clang/Basic
317# Diagnostics.
318
319diag_groups = [
320  "Analysis",
321  "AST",
322  "Comment",
323  "Common",
324  "CrossTU",
325  "Driver",
326  "Frontend",
327  "Lex",
328  "Parse",
329  "Refactoring",
330  "Sema",
331  "Serialization",
332]
333foreach(diag_group, diag_groups) {
334  clang_tablegen("Diagnostic${diag_group}Kinds") {
335    args = [
336      "-gen-clang-diags-defs",
337      "-clang-component=${diag_group}",
338    ]
339    td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Diagnostic.td"
340    output_name = "$clspv_llvm_dir/clang/Basic/Diagnostic${diag_group}Kinds.inc"
341  }
342}
343group("diags_tablegen") {
344  # DiagnosticGroups and DiagnosticIndexName are intentionally not part of this
345  # group.  Much of clang depends on the DiagKinds.inc files transitively,
346  # but almost nothing needs DiagnosticGroups.inc or DiagnosticIndexName.inc.
347  public_deps = []
348  foreach(diag_group, diag_groups) {
349    public_deps += [ ":Diagnostic${diag_group}Kinds" ]
350  }
351}
352
353clang_tablegen("DiagnosticGroups") {
354  args = [ "-gen-clang-diag-groups" ]
355  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Diagnostic.td"
356  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
357}
358
359clang_tablegen("DiagnosticIndexName") {
360  args = [ "-gen-clang-diags-index-name" ]
361  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Diagnostic.td"
362  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
363}
364
365# Attributes
366
367clang_tablegen("AttrList") {
368  args = [ "-gen-clang-attr-list" ]
369  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
370  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
371}
372
373clang_tablegen("AttrLeftSideCanPrintList") {
374  args = [ "-gen-clang-attr-can-print-left-list" ]
375  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
376  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
377}
378
379clang_tablegen("AttrLeftSideMustPrintList") {
380  args = [ "-gen-clang-attr-must-print-left-list" ]
381  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
382  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
383}
384
385clang_tablegen("AttrSubMatchRulesList") {
386  args = [ "-gen-clang-attr-subject-match-rule-list" ]
387  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
388  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
389}
390
391clang_tablegen("AttrTokenKinds") {
392  args = [ "-gen-clang-attr-token-kinds" ]
393  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
394  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
395}
396
397clang_tablegen("AttrHasAttributeImpl") {
398  args = [ "-gen-clang-attr-has-attribute-impl" ]
399  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
400  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
401}
402
403# ARM CDE, MVE, and NEON.
404
405clang_tablegen("arm_neon") {
406  args = [ "-gen-arm-neon-sema" ]
407  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_neon.td"
408  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
409}
410
411clang_tablegen("arm_fp16") {
412  args = [ "-gen-arm-neon-sema" ]
413  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_fp16.td"
414  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
415}
416
417clang_tablegen("arm_mve_builtins") {
418  args = [ "-gen-arm-mve-builtin-def" ]
419  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_mve.td"
420  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
421}
422
423clang_tablegen("arm_mve_builtin_cg") {
424  args = [ "-gen-arm-mve-builtin-codegen" ]
425  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_mve.td"
426  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
427}
428
429clang_tablegen("arm_mve_builtin_sema") {
430  args = [ "-gen-arm-mve-builtin-sema" ]
431  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_mve.td"
432  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
433}
434
435clang_tablegen("arm_mve_builtin_aliases") {
436  args = [ "-gen-arm-mve-builtin-aliases" ]
437  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_mve.td"
438  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
439}
440
441clang_tablegen("arm_sve_builtins") {
442  args = [ "-gen-arm-sve-builtins" ]
443  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sve.td"
444  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
445}
446
447clang_tablegen("arm_sve_builtin_cg") {
448  args = [ "-gen-arm-sve-builtin-codegen" ]
449  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sve.td"
450  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
451}
452
453clang_tablegen("arm_sve_typeflags") {
454  args = [ "-gen-arm-sve-typeflags" ]
455  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sve.td"
456  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
457}
458
459clang_tablegen("arm_sve_sema_rangechecks") {
460  args = [ "-gen-arm-sve-sema-rangechecks" ]
461  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sve.td"
462  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
463}
464
465clang_tablegen("arm_sme_builtins") {
466  args = [ "-gen-arm-sme-builtins" ]
467  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sme.td"
468  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
469}
470
471clang_tablegen("arm_sme_builtin_cg") {
472  args = [ "-gen-arm-sme-builtin-codegen" ]
473  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sme.td"
474  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
475}
476
477clang_tablegen("arm_sme_sema_rangechecks") {
478  args = [ "-gen-arm-sme-sema-rangechecks" ]
479  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_sme.td"
480  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
481}
482
483clang_tablegen("arm_cde_builtins") {
484  args = [ "-gen-arm-cde-builtin-def" ]
485  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_cde.td"
486  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
487}
488
489clang_tablegen("arm_cde_builtin_cg") {
490  args = [ "-gen-arm-cde-builtin-codegen" ]
491  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_cde.td"
492  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
493}
494
495clang_tablegen("arm_cde_builtin_sema") {
496  args = [ "-gen-arm-cde-builtin-sema" ]
497  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_cde.td"
498  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
499}
500
501clang_tablegen("arm_cde_builtin_aliases") {
502  args = [ "-gen-arm-cde-builtin-aliases" ]
503  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/arm_cde.td"
504  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
505}
506
507# RISC-V
508
509clang_tablegen("riscv_vector_builtins") {
510  args = [ "-gen-riscv-vector-builtins" ]
511  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_vector.td"
512  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
513}
514
515clang_tablegen("riscv_vector_builtin_cg") {
516  args = [ "-gen-riscv-vector-builtin-codegen" ]
517  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_vector.td"
518  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
519}
520
521clang_tablegen("riscv_vector_builtin_sema") {
522  args = [ "-gen-riscv-vector-builtin-sema" ]
523  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_vector.td"
524  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
525}
526
527clang_tablegen("riscv_sifive_vector_builtins") {
528  args = [ "-gen-riscv-sifive-vector-builtins" ]
529  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_sifive_vector.td"
530  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
531}
532
533clang_tablegen("riscv_sifive_vector_builtin_cg") {
534  args = [ "-gen-riscv-sifive-vector-builtin-codegen" ]
535  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_sifive_vector.td"
536  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
537}
538
539clang_tablegen("riscv_sifive_vector_builtin_sema") {
540  args = [ "-gen-riscv-sifive-vector-builtin-sema" ]
541  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/riscv_sifive_vector.td"
542  output_path = "$clspv_llvm_dir/clang/include/clang/Basic"
543}
544
545# from clang/include/clang/Driver
546tablegen("Options") {
547  args = [ "-gen-opt-parser-defs" ]
548  td_file = "//$clspv_llvm_dir/clang/include/clang/Driver/Options.td"
549  output_path = "$clspv_llvm_dir/clang/include/clang/Driver"
550}
551
552# from clang/include/clang/Sema
553clang_tablegen("AttrTemplateInstantiate") {
554  args = [ "-gen-clang-attr-template-instantiate" ]
555  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
556  output_path = "$clspv_llvm_dir/clang/include/clang/Sema"
557}
558
559clang_tablegen("AttrParsedAttrList") {
560  args = [ "-gen-clang-attr-parsed-attr-list" ]
561  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
562  output_path = "$clspv_llvm_dir/clang/include/clang/Sema"
563}
564
565clang_tablegen("AttrParsedAttrKinds") {
566  args = [ "-gen-clang-attr-parsed-attr-kinds" ]
567  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
568  output_path = "$clspv_llvm_dir/clang/include/clang/Sema"
569}
570
571clang_tablegen("AttrSpellingListIndex") {
572  args = [ "-gen-clang-attr-spelling-index" ]
573  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
574  output_path = "$clspv_llvm_dir/clang/include/clang/Sema"
575}
576
577clang_tablegen("AttrParsedAttrImpl") {
578  args = [ "-gen-clang-attr-parsed-attr-impl" ]
579  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
580  output_path = "$clspv_llvm_dir/clang/include/clang/Sema"
581}
582
583# from clang/include/clang/Parse
584clang_tablegen("AttrParserStringSwitches") {
585  args = [ "-gen-clang-attr-parser-string-switches" ]
586  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
587  output_path = "$clspv_llvm_dir/clang/include/clang/Parse"
588}
589
590clang_tablegen("AttrSubMatchRulesParserStringSwitches") {
591  args = [ "-gen-clang-attr-subject-match-rules-parser-string-switches" ]
592  td_file = "//$clspv_llvm_dir/clang/include/clang/Basic/Attr.td"
593  output_path = "$clspv_llvm_dir/clang/include/clang/Parse"
594}
595
596# from clang/lib/Sema
597clang_tablegen("OpenCLBuiltins") {
598  args = [ "-gen-clang-opencl-builtins" ]
599  td_file = "//$clspv_llvm_dir/clang/lib/Sema/OpenCLBuiltins.td"
600  output_path = "$clspv_llvm_dir/clang/lib/Sema"
601}
602
603# from clang/include/clang/Serialization
604clang_tablegen("AttrPCHRead") {
605  args = [ "-gen-clang-attr-pch-read" ]
606  td_file =
607      "//$clspv_llvm_dir/clang/include/clang/Serialization/../Basic/Attr.td"
608  output_path = "$clspv_llvm_dir/clang/include/clang/Serialization"
609}
610
611clang_tablegen("AttrPCHWrite") {
612  args = [ "-gen-clang-attr-pch-write" ]
613  td_file =
614      "//$clspv_llvm_dir/clang/include/clang/Serialization/../Basic/Attr.td"
615  output_path = "$clspv_llvm_dir/clang/include/clang/Serialization"
616}
617
618# from clang/include/clang/StaticAnalyzer
619clang_tablegen("Checkers") {
620  args = [ "-gen-clang-sa-checkers" ]
621  td_file = "//$clspv_llvm_dir/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td"
622  output_path = "$clspv_llvm_dir/clang/include/clang/StaticAnalyzer/Checkers"
623}
624