[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / utils / bazel / llvm-project-overlay / mlir / test / BUILD.bazel
blobdf16b80dd83ee086edbb3507a8da54be1db72f94
1 # This file is licensed under the Apache License v2.0 with LLVM Exceptions.
2 # See https://llvm.org/LICENSE.txt for license information.
3 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5 load("//mlir:tblgen.bzl", "gentbl_cc_library", "td_library")
7 package(
8     default_visibility = ["//visibility:public"],
9     licenses = ["notice"],
12 cc_library(
13     name = "IRProducingAPITest",
14     hdrs = ["APITest.h"],
15     includes = ["."],
18 cc_library(
19     name = "TestAnalysis",
20     srcs = glob(["lib/Analysis/*.cpp"]),
21     includes = ["lib/Dialect/Test"],
22     deps = [
23         ":TestDialect",
24         "//llvm:Support",
25         "//mlir:Affine",
26         "//mlir:Analysis",
27         "//mlir:IR",
28         "//mlir:MemRefDialect",
29         "//mlir:Pass",
30         "//mlir:Support",
31     ],
34 td_library(
35     name = "TestOpTdFiles",
36     srcs = [
37         "lib/Dialect/Test/TestInterfaces.td",
38         "lib/Dialect/Test/TestOps.td",
39         "//mlir:include/mlir/Dialect/DLTI/DLTIBase.td",
40         "//mlir:include/mlir/IR/OpAsmInterface.td",
41         "//mlir:include/mlir/IR/RegionKindInterface.td",
42         "//mlir:include/mlir/IR/SymbolInterfaces.td",
43         "//mlir:include/mlir/Interfaces/CallInterfaces.td",
44         "//mlir:include/mlir/Interfaces/ControlFlowInterfaces.td",
45         "//mlir:include/mlir/Interfaces/CopyOpInterface.td",
46         "//mlir:include/mlir/Interfaces/DataLayoutInterfaces.td",
47         "//mlir:include/mlir/Interfaces/InferTypeOpInterface.td",
48     ],
49     deps = [
50         "//mlir:OpBaseTdFiles",
51         "//mlir:SideEffectTdFiles",
52     ],
55 gentbl_cc_library(
56     name = "TestOpsIncGen",
57     strip_include_prefix = "lib/Dialect/Test",
58     tbl_outs = [
59         (
60             ["-gen-op-decls"],
61             "lib/Dialect/Test/TestOps.h.inc",
62         ),
63         (
64             ["-gen-op-defs"],
65             "lib/Dialect/Test/TestOps.cpp.inc",
66         ),
67         (
68             [
69                 "-gen-dialect-decls",
70                 "-dialect=test",
71             ],
72             "lib/Dialect/Test/TestOpsDialect.h.inc",
73         ),
74         (
75             [
76                 "-gen-dialect-defs",
77                 "-dialect=test",
78             ],
79             "lib/Dialect/Test/TestOpsDialect.cpp.inc",
80         ),
81         (
82             ["-gen-enum-decls"],
83             "lib/Dialect/Test/TestOpEnums.h.inc",
84         ),
85         (
86             ["-gen-enum-defs"],
87             "lib/Dialect/Test/TestOpEnums.cpp.inc",
88         ),
89         (
90             ["-gen-struct-attr-decls"],
91             "lib/Dialect/Test/TestOpStructs.h.inc",
92         ),
93         (
94             ["-gen-struct-attr-defs"],
95             "lib/Dialect/Test/TestOpStructs.cpp.inc",
96         ),
97         (
98             ["-gen-rewriters"],
99             "lib/Dialect/Test/TestPatterns.inc",
100         ),
101     ],
102     tblgen = "//mlir:mlir-tblgen",
103     td_file = "lib/Dialect/Test/TestOps.td",
104     test = True,
105     deps = [
106         ":TestOpTdFiles",
107     ],
110 gentbl_cc_library(
111     name = "TestInterfacesIncGen",
112     strip_include_prefix = "lib/Dialect/Test",
113     tbl_outs = [
114         (
115             ["-gen-attr-interface-decls"],
116             "lib/Dialect/Test/TestAttrInterfaces.h.inc",
117         ),
118         (
119             ["-gen-attr-interface-defs"],
120             "lib/Dialect/Test/TestAttrInterfaces.cpp.inc",
121         ),
122         (
123             ["-gen-type-interface-decls"],
124             "lib/Dialect/Test/TestTypeInterfaces.h.inc",
125         ),
126         (
127             ["-gen-type-interface-defs"],
128             "lib/Dialect/Test/TestTypeInterfaces.cpp.inc",
129         ),
130         (
131             ["-gen-op-interface-decls"],
132             "lib/Dialect/Test/TestOpInterfaces.h.inc",
133         ),
134         (
135             ["-gen-op-interface-defs"],
136             "lib/Dialect/Test/TestOpInterfaces.cpp.inc",
137         ),
138     ],
139     tblgen = "//mlir:mlir-tblgen",
140     td_file = "lib/Dialect/Test/TestInterfaces.td",
141     test = True,
142     deps = [
143         "//mlir:OpBaseTdFiles",
144         "//mlir:SideEffectInterfacesTdFiles",
145     ],
148 gentbl_cc_library(
149     name = "TestAttrDefsIncGen",
150     strip_include_prefix = "lib/Dialect/Test",
151     tbl_outs = [
152         (
153             ["-gen-attrdef-decls"],
154             "lib/Dialect/Test/TestAttrDefs.h.inc",
155         ),
156         (
157             ["-gen-attrdef-defs"],
158             "lib/Dialect/Test/TestAttrDefs.cpp.inc",
159         ),
160     ],
161     tblgen = "//mlir:mlir-tblgen",
162     td_file = "lib/Dialect/Test/TestAttrDefs.td",
163     test = True,
164     deps = [
165         ":TestOpTdFiles",
166     ],
169 gentbl_cc_library(
170     name = "TestTypeDefsIncGen",
171     strip_include_prefix = "lib/Dialect/Test",
172     tbl_outs = [
173         (
174             [
175                 "-gen-typedef-decls",
176                 "--typedefs-dialect=test",
177             ],
178             "lib/Dialect/Test/TestTypeDefs.h.inc",
179         ),
180         (
181             [
182                 "-gen-typedef-defs",
183                 "--typedefs-dialect=test",
184             ],
185             "lib/Dialect/Test/TestTypeDefs.cpp.inc",
186         ),
187     ],
188     tblgen = "//mlir:mlir-tblgen",
189     td_file = "lib/Dialect/Test/TestTypeDefs.td",
190     test = True,
191     deps = [
192         ":TestOpTdFiles",
193         "//mlir:BuiltinDialectTdFiles",
194     ],
197 cc_library(
198     name = "TestDialect",
199     srcs = [
200         "lib/Dialect/Test/TestAttributes.cpp",
201         "lib/Dialect/Test/TestDialect.cpp",
202         "lib/Dialect/Test/TestInterfaces.cpp",
203         "lib/Dialect/Test/TestPatterns.cpp",
204         "lib/Dialect/Test/TestTraits.cpp",
205         "lib/Dialect/Test/TestTypes.cpp",
206     ],
207     hdrs = [
208         "lib/Dialect/Test/TestAttributes.h",
209         "lib/Dialect/Test/TestDialect.h",
210         "lib/Dialect/Test/TestInterfaces.h",
211         "lib/Dialect/Test/TestTypes.h",
212     ],
213     includes = [
214         "lib/Dialect/Test",
215     ],
216     deps = [
217         ":TestAttrDefsIncGen",
218         ":TestInterfacesIncGen",
219         ":TestOpsIncGen",
220         ":TestTypeDefsIncGen",
221         "//llvm:Support",
222         "//mlir:ControlFlowInterfaces",
223         "//mlir:CopyOpInterface",
224         "//mlir:DLTIDialect",
225         "//mlir:DataLayoutInterfaces",
226         "//mlir:DerivedAttributeOpInterface",
227         "//mlir:Dialect",
228         "//mlir:IR",
229         "//mlir:InferTypeOpInterface",
230         "//mlir:LLVMDialect",
231         "//mlir:Pass",
232         "//mlir:Reducer",
233         "//mlir:SideEffects",
234         "//mlir:StandardOps",
235         "//mlir:StandardOpsTransforms",
236         "//mlir:TensorDialect",
237         "//mlir:TransformUtils",
238         "//mlir:Transforms",
239     ],
242 cc_library(
243     name = "TestIR",
244     srcs = glob(["lib/IR/*.cpp"]),
245     deps = [
246         ":TestDialect",
247         "//llvm:Support",
248         "//mlir:Analysis",
249         "//mlir:IR",
250         "//mlir:LinalgOps",
251         "//mlir:Pass",
252         "//mlir:StandardOps",
253         "//mlir:Support",
254     ],
257 cc_library(
258     name = "TestPass",
259     srcs = glob(["lib/Pass/*.cpp"]),
260     deps = [
261         "//llvm:Support",
262         "//mlir:IR",
263         "//mlir:Pass",
264         "//mlir:Support",
265     ],
268 cc_library(
269     name = "TestRewrite",
270     srcs = [
271         "lib/Rewrite/TestPDLByteCode.cpp",
272     ],
273     deps = [
274         "//mlir:IR",
275         "//mlir:Pass",
276         "//mlir:Support",
277         "//mlir:TransformUtils",
278     ],
281 cc_library(
282     name = "TestReducer",
283     srcs = [
284         "lib/Reducer/MLIRTestReducer.cpp",
285     ],
286     deps = [
287         "//mlir:IR",
288         "//mlir:Pass",
289         "//mlir:Support",
290     ],
293 cc_library(
294     name = "TestTransforms",
295     srcs = glob(["lib/Transforms/*.cpp"]),
296     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
297     includes = ["lib/Dialect/Test"],
298     deps = [
299         ":TestDialect",
300         "//llvm:Support",
301         "//mlir:Affine",
302         "//mlir:Analysis",
303         "//mlir:IR",
304         "//mlir:MathDialect",
305         "//mlir:Pass",
306         "//mlir:SCFDialect",
307         "//mlir:SPIRVDialect",
308         "//mlir:StandardOps",
309         "//mlir:TransformUtils",
310     ],
313 cc_library(
314     name = "TestStandardToLLVM",
315     srcs = glob(["lib/Conversion/StandardToLLVM/*.cpp"]),
316     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
317     includes = ["lib/Dialect/Test"],
318     deps = [
319         ":TestDialect",
320         "//mlir:LLVMCommonConversion",
321         "//mlir:LLVMDialect",
322         "//mlir:Pass",
323         "//mlir:StandardOps",
324         "//mlir:StandardToLLVM",
325     ],
328 cc_library(
329     name = "TestAffine",
330     srcs = glob([
331         "lib/Dialect/Affine/*.cpp",
332     ]),
333     deps = [
334         "//llvm:Support",
335         "//mlir:Affine",
336         "//mlir:AffineTransforms",
337         "//mlir:AffineUtils",
338         "//mlir:Analysis",
339         "//mlir:IR",
340         "//mlir:MemRefDialect",
341         "//mlir:Pass",
342         "//mlir:Support",
343         "//mlir:Transforms",
344         "//mlir:VectorOps",
345     ],
348 cc_library(
349     name = "TestDLTI",
350     srcs = glob(["lib/Dialect/DLTI/*.cpp"]),
351     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
352     includes = ["lib/Dialect/Test"],
353     deps = [
354         ":TestDialect",
355         "//mlir:Analysis",
356         "//mlir:DLTIDialect",
357         "//mlir:IR",
358         "//mlir:Pass",
359     ],
362 cc_library(
363     name = "TestGPU",
364     srcs = glob(["lib/Dialect/GPU/*.cpp"]),
365     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
366     includes = ["lib/Dialect/Test"],
367     deps = [
368         "//llvm:NVPTXCodeGen",
369         "//llvm:Support",
370         "//mlir:Affine",
371         "//mlir:GPUDialect",
372         "//mlir:GPUTransforms",
373         "//mlir:IR",
374         "//mlir:MemRefDialect",
375         "//mlir:NVVMToLLVMIRTranslation",
376         "//mlir:Pass",
377         "//mlir:ROCDLToLLVMIRTranslation",
378         "//mlir:SCFDialect",
379         "//mlir:SPIRVDialect",
380         "//mlir:StandardOps",
381         "//mlir:ToLLVMIRTranslation",
382         "//mlir:TransformUtils",
383     ],
386 cc_library(
387     name = "TestLinalg",
388     srcs = glob(["lib/Dialect/Linalg/*.cpp"]),
389     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
390     includes = ["lib/Dialect/Test"],
391     deps = [
392         "//llvm:Support",
393         "//mlir:Affine",
394         "//mlir:GPUDialect",
395         "//mlir:IR",
396         "//mlir:LinalgOps",
397         "//mlir:LinalgTransforms",
398         "//mlir:Pass",
399         "//mlir:StandardOps",
400         "//mlir:TransformUtils",
401         "//mlir:VectorOps",
402         "//mlir:VectorToSCF",
403     ],
406 cc_library(
407     name = "TestMath",
408     srcs = glob(["lib/Dialect/Math/*.cpp"]),
409     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
410     includes = ["lib/Dialect/Test"],
411     deps = [
412         "//mlir:MathDialect",
413         "//mlir:MathTransforms",
414         "//mlir:Pass",
415         "//mlir:TransformUtils",
416         "//mlir:VectorOps",
417     ],
420 cc_library(
421     name = "TestSCF",
422     srcs = glob(["lib/Dialect/SCF/*.cpp"]),
423     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
424     includes = ["lib/Dialect/Test"],
425     deps = [
426         "//llvm:Support",
427         "//mlir:IR",
428         "//mlir:Pass",
429         "//mlir:SCFDialect",
430         "//mlir:SCFTransforms",
431         "//mlir:TransformUtils",
432     ],
435 cc_library(
436     name = "TestShapeDialect",
437     srcs = [
438         "lib/Dialect/Shape/TestShapeFunctions.cpp",
439     ],
440     deps = [
441         "//llvm:Support",
442         "//mlir:IR",
443         "//mlir:InferTypeOpInterface",
444         "//mlir:Pass",
445         "//mlir:Shape",
446     ],
449 cc_library(
450     name = "TestSPIRV",
451     srcs = glob([
452         "lib/Dialect/SPIRV/*.cpp",
453     ]),
454     deps = [
455         "//mlir:GPUDialect",
456         "//mlir:IR",
457         "//mlir:Pass",
458         "//mlir:SPIRVConversion",
459         "//mlir:SPIRVDialect",
460         "//mlir:SPIRVModuleCombiner",
461         "//mlir:Transforms",
462     ],
465 cc_library(
466     name = "TestStandardOps",
467     srcs = glob(["lib/Dialect/StandardOps/*.cpp"]),
468     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
469     includes = ["lib/Dialect/Test"],
470     deps = [
471         ":TestDialect",
472         "//mlir:Affine",
473         "//mlir:IR",
474         "//mlir:Pass",
475         "//mlir:StandardOps",
476         "//mlir:StandardOpsTransforms",
477         "//mlir:TransformUtils",
478     ],
481 cc_library(
482     name = "TestVector",
483     srcs = glob(["lib/Dialect/Vector/*.cpp"]),
484     defines = ["MLIR_CUDA_CONVERSIONS_ENABLED"],
485     includes = ["lib/Dialect/Test"],
486     deps = [
487         "//mlir:Affine",
488         "//mlir:Analysis",
489         "//mlir:LinalgOps",
490         "//mlir:MemRefDialect",
491         "//mlir:Pass",
492         "//mlir:SCFDialect",
493         "//mlir:StandardOps",
494         "//mlir:TransformUtils",
495         "//mlir:VectorOps",
496         "//mlir:VectorToSCF",
497     ],
500 cc_library(
501     name = "TestTypeDialect",
502     srcs = glob([
503         "lib/Dialect/LLVMIR/*.cpp",
504     ]),
505     deps = [
506         ":TestDialect",
507         "//mlir:IR",
508         "//mlir:LLVMDialect",
509     ],
512 cc_library(
513     name = "TestTosaDialect",
514     srcs = glob([
515         "lib/Dialect/Tosa/*.cpp",
516     ]),
517     deps = [
518         "//mlir:IR",
519         "//mlir:Pass",
520         "//mlir:StandardOps",
521         "//mlir:TensorDialect",
522         "//mlir:TosaDialect",
523         "//mlir:Transforms",
524     ],