Skip to content

Commit fce046c

Browse files
authored
[mlir][bazel] Move InliningUtils into a separate target. (#85411)
Various (in-tree as well as downstream) targets currently depend on `InliningUtils.h` to avoid circular dependencies. E.g. `TransformUtils` depends on `ArithDialect`, so `ArithDialect` can't depend on `TransformUtils` exporting `InliningUtils.h`. This change exposes that header and it's implementation as a separate target. Having targets that implement all the declared functions is the preferred approach for bazel build graphs. See also PR #84878, which moves the interface definitions to a separate file in the `Interfaces` directory. This turned out to be controversial and putting it in a different directory didn't seem to have any support either. Instead, this PR only changes the bazel build without moving any C++ code.
1 parent dbbdee2 commit fce046c

File tree

2 files changed

+57
-26
lines changed

2 files changed

+57
-26
lines changed

utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3889,6 +3889,7 @@ cc_library(
38893889
":ControlFlowInterfaces",
38903890
":DialectUtils",
38913891
":IR",
3892+
":InliningUtils",
38923893
":LoopLikeInterface",
38933894
":MemRefDialect",
38943895
":ShapedOpInterfaces",
@@ -4296,6 +4297,7 @@ cc_library(
42964297
":FunctionInterfaces",
42974298
":IR",
42984299
":InferTypeOpInterface",
4300+
":InliningUtils",
42994301
":LoopLikeInterface",
43004302
":MemRefDialect",
43014303
":ParallelCombiningOpInterface",
@@ -4366,6 +4368,18 @@ cc_library(
43664368
],
43674369
)
43684370

4371+
cc_library(
4372+
name = "InliningUtils",
4373+
srcs = ["lib/Transforms/Utils/InliningUtils.cpp"],
4374+
hdrs = ["include/mlir/Transforms/InliningUtils.h"],
4375+
includes = ["include"],
4376+
deps = [
4377+
":CallOpInterfaces",
4378+
":IR",
4379+
"//llvm:Support",
4380+
],
4381+
)
4382+
43694383
cc_library(
43704384
name = "LoopLikeInterface",
43714385
srcs = ["lib/Interfaces/LoopLikeInterface.cpp"],
@@ -4543,6 +4557,7 @@ cc_library(
45434557
":FunctionInterfaces",
45444558
":IR",
45454559
":InferTypeOpInterface",
4560+
":InliningUtils",
45464561
":MLIRShapeCanonicalizationIncGen",
45474562
":ShapeOpsIncGen",
45484563
":SideEffectInterfaces",
@@ -4706,6 +4721,7 @@ cc_library(
47064721
":ControlFlowOpsIncGen",
47074722
":ConvertToLLVMInterface",
47084723
":IR",
4724+
":InliningUtils",
47094725
":SideEffectInterfaces",
47104726
":Support",
47114727
"//llvm:Support",
@@ -4742,7 +4758,7 @@ cc_library(
47424758
hdrs = glob([
47434759
"include/mlir/Dialect/Func/IR/*.h",
47444760
"include/mlir/Dialect/Func/Utils/*.h",
4745-
]) + ["include/mlir/Transforms/InliningUtils.h"],
4761+
]),
47464762
includes = ["include"],
47474763
deps = [
47484764
":ArithDialect",
@@ -4756,6 +4772,7 @@ cc_library(
47564772
":FunctionInterfaces",
47574773
":IR",
47584774
":InferTypeOpInterface",
4775+
":InliningUtils",
47594776
":SideEffectInterfaces",
47604777
":Support",
47614778
"//llvm:Support",
@@ -4772,6 +4789,7 @@ cc_library(
47724789
":FuncDialect",
47734790
":IR",
47744791
":InferTypeOpInterface",
4792+
":InliningUtils",
47754793
":MeshShardingInterface",
47764794
],
47774795
)
@@ -4928,6 +4946,7 @@ cc_library(
49284946
":DialectUtils",
49294947
":IR",
49304948
":InferTypeOpInterface",
4949+
":InliningUtils",
49314950
":MaskableOpInterface",
49324951
":MaskingOpInterface",
49334952
":MemRefDialect",
@@ -5344,7 +5363,6 @@ cc_library(
53445363
"include/mlir/Dialect/LLVMIR/*X86Vector*.h",
53455364
],
53465365
) + [
5347-
"include/mlir/Transforms/InliningUtils.h",
53485366
"include/mlir/Transforms/Mem2Reg.h",
53495367
],
53505368
includes = ["include"],
@@ -5355,6 +5373,7 @@ cc_library(
53555373
":FunctionInterfaces",
53565374
":IR",
53575375
":InferTypeOpInterface",
5376+
":InliningUtils",
53585377
":LLVMDialectInterfaceIncGen",
53595378
":LLVMIntrinsicOpsIncGen",
53605379
":LLVMOpsIncGen",
@@ -5561,6 +5580,7 @@ cc_library(
55615580
":IR",
55625581
":InferIntRangeInterface",
55635582
":InferTypeOpInterface",
5583+
":InliningUtils",
55645584
":LLVMDialect",
55655585
":MemRefDialect",
55665586
":SCFDialect",
@@ -6895,7 +6915,7 @@ cc_library(
68956915
srcs = glob([
68966916
"lib/Dialect/SPIRV/IR/*.cpp",
68976917
"lib/Dialect/SPIRV/IR/*.h",
6898-
]) + ["include/mlir/Transforms/InliningUtils.h"],
6918+
]),
68996919
hdrs = glob([
69006920
"include/mlir/Dialect/SPIRV/IR/*.h",
69016921
]),
@@ -6907,6 +6927,7 @@ cc_library(
69076927
":GPUDialect",
69086928
":IR",
69096929
":InferTypeOpInterface",
6930+
":InliningUtils",
69106931
":Parser",
69116932
":SPIRVAttrUtilsGen",
69126933
":SPIRVAttributesIncGen",
@@ -7311,7 +7332,6 @@ gentbl_cc_library(
73117332
cc_library(
73127333
name = "TensorDialect",
73137334
srcs = [
7314-
"include/mlir/Transforms/InliningUtils.h",
73157335
"lib/Dialect/Tensor/IR/TensorDialect.cpp",
73167336
"lib/Dialect/Tensor/IR/TensorOps.cpp",
73177337
"lib/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.cpp",
@@ -7332,6 +7352,7 @@ cc_library(
73327352
":DialectUtils",
73337353
":IR",
73347354
":InferTypeOpInterface",
7355+
":InliningUtils",
73357356
":LoopLikeInterface",
73367357
":ParallelCombiningOpInterface",
73377358
":ShapedOpInterfaces",
@@ -7522,22 +7543,27 @@ cc_library(
75227543

75237544
cc_library(
75247545
name = "TransformUtils",
7525-
srcs = glob([
7526-
"lib/Transforms/Utils/*.cpp",
7527-
"lib/Transforms/Utils/*.h",
7528-
]),
7546+
srcs = glob(
7547+
include = [
7548+
"lib/Transforms/Utils/*.cpp",
7549+
"lib/Transforms/Utils/*.h",
7550+
],
7551+
exclude = ["lib/Transforms/Utils/InliningUtils.cpp"],
7552+
),
75297553
hdrs = glob(
7530-
[
7531-
"include/mlir/Transforms/*.h",
7554+
include = ["include/mlir/Transforms/*.h"],
7555+
exclude = [
7556+
"include/mlir/Transforms/InliningUtils.h",
7557+
"include/mlir/Transforms/Passes.h",
75327558
],
7533-
exclude = ["include/mlir/Transforms/Passes.h"],
75347559
),
75357560
includes = ["include"],
75367561
deps = [
75377562
":Analysis",
75387563
":ControlFlowInterfaces",
75397564
":FunctionInterfaces",
75407565
":IR",
7566+
":InliningUtils",
75417567
":LoopLikeInterface",
75427568
":MemorySlotInterfaces",
75437569
":Pass",
@@ -7867,6 +7893,7 @@ cc_library(
78677893
":ControlFlowInterfaces",
78687894
":FunctionInterfaces",
78697895
":IR",
7896+
":InliningUtils",
78707897
":LoopLikeInterface",
78717898
":MemorySlotInterfaces",
78727899
":Pass",
@@ -10963,6 +10990,7 @@ cc_library(
1096310990
":FunctionInterfaces",
1096410991
":IR",
1096510992
":InferTypeOpInterface",
10993+
":InliningUtils",
1096610994
":LinalgEnumsIncGen",
1096710995
":LinalgInterfacesIncGen",
1096810996
":LinalgNamedStructuredOpsYamlIncGen",
@@ -11709,6 +11737,7 @@ cc_library(
1170911737
":FuncDialect",
1171011738
":IR",
1171111739
":InferTypeOpInterface",
11740+
":InliningUtils",
1171211741
":LoopLikeInterface",
1171311742
":MeshDialect",
1171411743
":MeshShardingInterface",
@@ -12323,6 +12352,7 @@ cc_library(
1232312352
":ConvertToLLVMInterface",
1232412353
":IR",
1232512354
":InferTypeOpInterface",
12355+
":InliningUtils",
1232612356
":SideEffectInterfaces",
1232712357
"//llvm:Support",
1232812358
],
@@ -12574,7 +12604,6 @@ cc_library(
1257412604
],
1257512605
hdrs = [
1257612606
"include/mlir/Dialect/Arith/IR/Arith.h",
12577-
"include/mlir/Transforms/InliningUtils.h",
1257812607
],
1257912608
includes = ["include"],
1258012609
deps = [
@@ -12589,6 +12618,7 @@ cc_library(
1258912618
":InferIntRangeCommon",
1259012619
":InferIntRangeInterface",
1259112620
":InferTypeOpInterface",
12621+
":InliningUtils",
1259212622
":Support",
1259312623
":UBDialect",
1259412624
":VectorInterfaces",
@@ -12750,6 +12780,7 @@ cc_library(
1275012780
":ConvertToLLVMInterface",
1275112781
":IR",
1275212782
":InferTypeOpInterface",
12783+
":InliningUtils",
1275312784
":MathBaseIncGen",
1275412785
":MathOpsIncGen",
1275512786
":SideEffectInterfaces",
@@ -12898,6 +12929,7 @@ cc_library(
1289812929
":DialectUtils",
1289912930
":IR",
1290012931
":InferTypeOpInterface",
12932+
":InliningUtils",
1290112933
":MemRefBaseIncGen",
1290212934
":MemRefOpsIncGen",
1290312935
":MemorySlotInterfaces",
@@ -13521,6 +13553,7 @@ cc_library(
1352113553
":FunctionInterfaces",
1352213554
":IR",
1352313555
":InferTypeOpInterface",
13556+
":InliningUtils",
1352413557
":MemRefDialect",
1352513558
":SparseTensorDialect",
1352613559
":SubsetOpInterface",
@@ -13918,14 +13951,14 @@ gentbl_cc_library(
1391813951
cc_library(
1391913952
name = "UBDialect",
1392013953
srcs = [
13921-
"include/mlir/Transforms/InliningUtils.h",
1392213954
"lib/Dialect/UB/IR/UBOps.cpp",
1392313955
],
1392413956
hdrs = ["include/mlir/Dialect/UB/IR/UBOps.h"],
1392513957
includes = ["include"],
1392613958
deps = [
1392713959
":ConvertToLLVMInterface",
1392813960
":IR",
13961+
":InliningUtils",
1392913962
":SideEffectInterfaces",
1393013963
":UBOpsIncGen",
1393113964
":UBOpsInterfacesIncGen",

utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ cc_library(
399399
"//mlir:IR",
400400
"//mlir:InferIntRangeInterface",
401401
"//mlir:InferTypeOpInterface",
402+
"//mlir:InliningUtils",
402403
"//mlir:LLVMDialect",
403404
"//mlir:LinalgDialect",
404405
"//mlir:LoopLikeInterface",
@@ -407,7 +408,6 @@ cc_library(
407408
"//mlir:SideEffectInterfaces",
408409
"//mlir:Support",
409410
"//mlir:TensorDialect",
410-
"//mlir:TransformUtils",
411411
"//mlir:Transforms",
412412
"//mlir:ViewLikeInterface",
413413
],
@@ -532,7 +532,7 @@ cc_library(
532532
"//mlir:PDLInterpDialect",
533533
"//mlir:Pass",
534534
"//mlir:Support",
535-
"//mlir:TransformUtils",
535+
"//mlir:Transforms",
536536
],
537537
)
538538

@@ -570,7 +570,7 @@ cc_library(
570570
"//mlir:SCFDialect",
571571
"//mlir:SPIRVDialect",
572572
"//mlir:Support",
573-
"//mlir:TransformUtils",
573+
"//mlir:Transforms",
574574
],
575575
)
576576

@@ -600,7 +600,7 @@ cc_library(
600600
"//mlir:Pass",
601601
"//mlir:SCFDialect",
602602
"//mlir:SCFTransforms",
603-
"//mlir:TransformUtils",
603+
"//mlir:Transforms",
604604
],
605605
)
606606

@@ -695,7 +695,6 @@ cc_library(
695695
"//mlir:SCFToControlFlow",
696696
"//mlir:SPIRVDialect",
697697
"//mlir:ToLLVMIRTranslation",
698-
"//mlir:TransformUtils",
699698
"//mlir:Transforms",
700699
"//mlir:VectorDialect",
701700
"//mlir:VectorToLLVM",
@@ -728,7 +727,6 @@ cc_library(
728727
"//mlir:SCFTransforms",
729728
"//mlir:TensorDialect",
730729
"//mlir:TensorTransforms",
731-
"//mlir:TransformUtils",
732730
"//mlir:Transforms",
733731
"//mlir:VectorDialect",
734732
"//mlir:VectorToSCF",
@@ -770,7 +768,7 @@ cc_library(
770768
"//mlir:MathTransforms",
771769
"//mlir:Pass",
772770
"//mlir:SCFDialect",
773-
"//mlir:TransformUtils",
771+
"//mlir:Transforms",
774772
"//mlir:VectorDialect",
775773
"//mlir:X86VectorDialect",
776774
],
@@ -786,7 +784,7 @@ cc_library(
786784
"//mlir:IR",
787785
"//mlir:MathDialect",
788786
"//mlir:Pass",
789-
"//mlir:TransformUtils",
787+
"//mlir:Transforms",
790788
"//mlir:VCIXDialect",
791789
"//mlir:VectorDialect",
792790
],
@@ -850,7 +848,7 @@ cc_library(
850848
"//mlir:Pass",
851849
"//mlir:SCFDialect",
852850
"//mlir:Support",
853-
"//mlir:TransformUtils",
851+
"//mlir:Transforms",
854852
],
855853
)
856854

@@ -869,7 +867,7 @@ cc_library(
869867
"//mlir:SCFDialect",
870868
"//mlir:SCFTransforms",
871869
"//mlir:SCFUtils",
872-
"//mlir:TransformUtils",
870+
"//mlir:Transforms",
873871
],
874872
)
875873

@@ -994,7 +992,7 @@ cc_library(
994992
"//mlir:FuncTransforms",
995993
"//mlir:IR",
996994
"//mlir:Pass",
997-
"//mlir:TransformUtils",
995+
"//mlir:Transforms",
998996
],
999997
)
1000998

@@ -1033,7 +1031,7 @@ cc_library(
10331031
"//mlir:SCFDialect",
10341032
"//mlir:Support",
10351033
"//mlir:TensorDialect",
1036-
"//mlir:TransformUtils",
1034+
"//mlir:Transforms",
10371035
"//mlir:VectorDialect",
10381036
"//mlir:VectorToSCF",
10391037
"//mlir:VectorTransforms",
@@ -1119,6 +1117,6 @@ cc_library(
11191117
"//mlir:Parser",
11201118
"//mlir:Pass",
11211119
"//mlir:Support",
1122-
"//mlir:TransformUtils",
1120+
"//mlir:Transforms",
11231121
],
11241122
)

0 commit comments

Comments
 (0)