1import("//llvm/utils/TableGen/tablegen.gni")
2
3tablegen("Attributes") {
4  visibility = [ ":public_tablegen" ]
5  args = [ "-gen-attrs" ]
6}
7
8tablegen("IntrinsicImpl") {
9  visibility = [ "//llvm/lib/IR" ]
10  args = [ "-gen-intrinsic-impl" ]
11  td_file = "Intrinsics.td"
12}
13
14tablegen("IntrinsicEnums") {
15  visibility = [ ":public_tablegen" ]
16  args = [ "-gen-intrinsic-enums" ]
17  td_file = "Intrinsics.td"
18}
19
20tablegen("IntrinsicsAArch64") {
21  visibility = [ ":public_tablegen" ]
22  output_name = "IntrinsicsAArch64.h"
23  args = [
24    "-gen-intrinsic-enums",
25    "-intrinsic-prefix=aarch64",
26  ]
27  td_file = "Intrinsics.td"
28}
29
30tablegen("IntrinsicsAMDGPU") {
31  visibility = [ ":public_tablegen" ]
32  output_name = "IntrinsicsAMDGPU.h"
33  args = [
34    "-gen-intrinsic-enums",
35    "-intrinsic-prefix=amdgcn",
36  ]
37  td_file = "Intrinsics.td"
38}
39
40tablegen("IntrinsicsARM") {
41  visibility = [ ":public_tablegen" ]
42  output_name = "IntrinsicsARM.h"
43  args = [
44    "-gen-intrinsic-enums",
45    "-intrinsic-prefix=arm",
46  ]
47  td_file = "Intrinsics.td"
48}
49
50tablegen("IntrinsicsBPF") {
51  visibility = [ ":public_tablegen" ]
52  output_name = "IntrinsicsBPF.h"
53  args = [
54    "-gen-intrinsic-enums",
55    "-intrinsic-prefix=bpf",
56  ]
57  td_file = "Intrinsics.td"
58}
59
60tablegen("IntrinsicsHexagon") {
61  visibility = [ ":public_tablegen" ]
62  output_name = "IntrinsicsHexagon.h"
63  args = [
64    "-gen-intrinsic-enums",
65    "-intrinsic-prefix=hexagon",
66  ]
67  td_file = "Intrinsics.td"
68}
69
70tablegen("IntrinsicsMips") {
71  visibility = [ ":public_tablegen" ]
72  output_name = "IntrinsicsMips.h"
73  args = [
74    "-gen-intrinsic-enums",
75    "-intrinsic-prefix=mips",
76  ]
77  td_file = "Intrinsics.td"
78}
79
80tablegen("IntrinsicsNVPTX") {
81  visibility = [ ":public_tablegen" ]
82  output_name = "IntrinsicsNVPTX.h"
83  args = [
84    "-gen-intrinsic-enums",
85    "-intrinsic-prefix=nvvm",
86  ]
87  td_file = "Intrinsics.td"
88}
89
90tablegen("IntrinsicsPowerPC") {
91  visibility = [ ":public_tablegen" ]
92  output_name = "IntrinsicsPowerPC.h"
93  args = [
94    "-gen-intrinsic-enums",
95    "-intrinsic-prefix=ppc",
96  ]
97  td_file = "Intrinsics.td"
98}
99
100tablegen("IntrinsicsR600") {
101  visibility = [ ":public_tablegen" ]
102  output_name = "IntrinsicsR600.h"
103  args = [
104    "-gen-intrinsic-enums",
105    "-intrinsic-prefix=r600",
106  ]
107  td_file = "Intrinsics.td"
108}
109
110tablegen("IntrinsicsRISCV") {
111  visibility = [ ":public_tablegen" ]
112  output_name = "IntrinsicsRISCV.h"
113  args = [
114    "-gen-intrinsic-enums",
115    "-intrinsic-prefix=riscv",
116  ]
117  td_file = "Intrinsics.td"
118}
119
120tablegen("IntrinsicsS390") {
121  visibility = [ ":public_tablegen" ]
122  output_name = "IntrinsicsS390.h"
123  args = [
124    "-gen-intrinsic-enums",
125    "-intrinsic-prefix=s390",
126  ]
127  td_file = "Intrinsics.td"
128}
129
130tablegen("IntrinsicsWebAssembly") {
131  visibility = [ ":public_tablegen" ]
132  output_name = "IntrinsicsWebAssembly.h"
133  args = [
134    "-gen-intrinsic-enums",
135    "-intrinsic-prefix=wasm",
136  ]
137  td_file = "Intrinsics.td"
138}
139
140tablegen("IntrinsicsX86") {
141  visibility = [ ":public_tablegen" ]
142  output_name = "IntrinsicsX86.h"
143  args = [
144    "-gen-intrinsic-enums",
145    "-intrinsic-prefix=x86",
146  ]
147  td_file = "Intrinsics.td"
148}
149
150tablegen("IntrinsicsXCore") {
151  visibility = [ ":public_tablegen" ]
152  output_name = "IntrinsicsXCore.h"
153  args = [
154    "-gen-intrinsic-enums",
155    "-intrinsic-prefix=xcore",
156  ]
157  td_file = "Intrinsics.td"
158}
159
160# Groups all tablegen() calls that create .inc files that are included in
161# IR's public headers.  //llvm/lib/IR has this as a public_dep, so targets
162# depending on //llvm/lib/IR don't need to depend on this.  This exists
163# solely for targets that use IR's public headers but don't link against IR.
164group("public_tablegen") {
165  public_deps = [
166    # IR's public headers include Attributes.inc.
167    ":Attributes",
168
169    # IR's public headers include IntrinsicEnums.inc.
170    ":IntrinsicEnums",
171
172    # FIXME: These are only included from .cpp files at first glance.
173    # Try removing them from the public_tablegen target.
174    ":IntrinsicsAArch64",
175    ":IntrinsicsAMDGPU",
176    ":IntrinsicsARM",
177    ":IntrinsicsBPF",
178    ":IntrinsicsHexagon",
179    ":IntrinsicsMips",
180    ":IntrinsicsNVPTX",
181    ":IntrinsicsPowerPC",
182    ":IntrinsicsR600",
183    ":IntrinsicsRISCV",
184    ":IntrinsicsS390",
185    ":IntrinsicsWebAssembly",
186    ":IntrinsicsX86",
187    ":IntrinsicsXCore",
188  ]
189}
190