@@ -47,23 +47,70 @@ cc_library(
4747 "dialect/tpu/tpu_ops.cc" ,
4848 "dialect/tpu/util.cc" ,
4949 "dialect/tpu/vreg_util.cc" ,
50- ":extension_srcs" ,
51- ] + glob ([
52- "dialect/tpu/transforms/*.cc" ,
53- ]),
50+ ],
5451 hdrs = [
5552 "dialect/tpu/array_util.h" ,
5653 "dialect/tpu/layout.h" ,
5754 "dialect/tpu/tpu_dialect.h" ,
5855 "dialect/tpu/util.h" ,
5956 "dialect/tpu/vreg_util.h" ,
60- ] + glob ([
61- "dialect/tpu/transforms/*.h" ,
62- ]),
57+ ],
58+ # compatible with libtpu
59+ deps = [
60+ ":tpu_inc_gen" ,
61+ "@com_google_absl//absl/algorithm:container" ,
62+ "@com_google_absl//absl/hash" ,
63+ "@com_google_absl//absl/log" ,
64+ "@com_google_absl//absl/log:check" ,
65+ "@com_google_absl//absl/status" ,
66+ "@com_google_absl//absl/strings" ,
67+ "@com_google_absl//absl/strings:str_format" ,
68+ "@com_google_absl//absl/types:span" ,
69+ "@llvm-project//llvm:Support" ,
70+ "@llvm-project//mlir:ArithDialect" ,
71+ "@llvm-project//mlir:CommonFolders" ,
72+ "@llvm-project//mlir:DataLayoutInterfaces" ,
73+ "@llvm-project//mlir:Dialect" ,
74+ "@llvm-project//mlir:DialectUtils" ,
75+ "@llvm-project//mlir:FuncDialect" ,
76+ "@llvm-project//mlir:IR" ,
77+ "@llvm-project//mlir:MathDialect" ,
78+ "@llvm-project//mlir:MemRefDialect" ,
79+ "@llvm-project//mlir:Pass" ,
80+ "@llvm-project//mlir:Support" ,
81+ "@llvm-project//mlir:VectorDialect" ,
82+ "@xla//xla:array" ,
83+ "@xla//xla:shape_util" ,
84+ "@xla//xla/tsl/platform:statusor" ,
85+ ] + mosaic_extension_deps ,
86+ )
87+
88+ cc_library (
89+ name = "tpu_passes" ,
90+ srcs = [
91+ ":extension_srcs" ,
92+ ] + glob (
93+ [
94+ "dialect/tpu/transforms/*.cc" ,
95+ ],
96+ exclude = [
97+ "dialect/tpu/transforms/serde.cc" ,
98+ "dialect/tpu/transforms/linalg_vectorization.cc" ,
99+ ],
100+ ),
101+ hdrs = glob (
102+ [
103+ "dialect/tpu/transforms/*.h" ,
104+ ],
105+ exclude = [
106+ "dialect/tpu/transforms/serde.h" ,
107+ "dialect/tpu/transforms/linalg_vectorization.h" ,
108+ ],
109+ ),
63110 # compatible with libtpu
64111 deps = [
65112 ":pass_boilerplate" ,
66- ":serde " ,
113+ ":tpu_dialect " ,
67114 ":tpu_inc_gen" ,
68115 "@com_google_absl//absl/algorithm:container" ,
69116 "@com_google_absl//absl/container:flat_hash_set" ,
@@ -84,13 +131,11 @@ cc_library(
84131 "@llvm-project//mlir:DialectUtils" ,
85132 "@llvm-project//mlir:FuncDialect" ,
86133 "@llvm-project//mlir:IR" ,
87- "@llvm-project//mlir:LinalgTransforms" ,
88134 "@llvm-project//mlir:MathDialect" ,
89135 "@llvm-project//mlir:MemRefDialect" ,
90136 "@llvm-project//mlir:Pass" ,
91137 "@llvm-project//mlir:SCFDialect" ,
92138 "@llvm-project//mlir:Support" ,
93- "@llvm-project//mlir:TensorDialect" ,
94139 "@llvm-project//mlir:TransformUtils" ,
95140 "@llvm-project//mlir:VectorDialect" ,
96141 "@llvm-project//mlir:VectorTransforms" ,
@@ -103,6 +148,66 @@ cc_library(
103148 ] + mosaic_extension_deps ,
104149)
105150
151+ cc_library (
152+ name = "tpu_serde_pass" ,
153+ srcs = ["dialect/tpu/transforms/serde.cc" ],
154+ hdrs = ["dialect/tpu/transforms/serde.h" ],
155+ # compatible with libtpu
156+ deps = [
157+ ":pass_boilerplate" ,
158+ ":serde" ,
159+ ":tpu_dialect" ,
160+ ":tpu_inc_gen" ,
161+ "@llvm-project//llvm:Support" ,
162+ "@llvm-project//mlir:ArithDialect" ,
163+ "@llvm-project//mlir:ControlFlowDialect" ,
164+ "@llvm-project//mlir:DataLayoutInterfaces" ,
165+ "@llvm-project//mlir:Dialect" ,
166+ "@llvm-project//mlir:FuncDialect" ,
167+ "@llvm-project//mlir:IR" ,
168+ "@llvm-project//mlir:MathDialect" ,
169+ "@llvm-project//mlir:MemRefDialect" ,
170+ "@llvm-project//mlir:Pass" ,
171+ "@llvm-project//mlir:SCFDialect" ,
172+ "@llvm-project//mlir:Support" ,
173+ "@llvm-project//mlir:VectorDialect" ,
174+ ] + mosaic_extension_deps ,
175+ )
176+
177+ cc_library (
178+ name = "tpu_linalg_vectorization_pass" ,
179+ srcs = ["dialect/tpu/transforms/linalg_vectorization.cc" ],
180+ hdrs = ["dialect/tpu/transforms/linalg_vectorization.h" ],
181+ # compatible with libtpu
182+ deps = [
183+ ":pass_boilerplate" ,
184+ ":serde" ,
185+ ":tpu_dialect" ,
186+ ":tpu_inc_gen" ,
187+ "@com_google_absl//absl/algorithm:container" ,
188+ "@com_google_absl//absl/container:flat_hash_set" ,
189+ "@llvm-project//llvm:Support" ,
190+ "@llvm-project//mlir:ArithDialect" ,
191+ "@llvm-project//mlir:CommonFolders" ,
192+ "@llvm-project//mlir:ControlFlowDialect" ,
193+ "@llvm-project//mlir:DataLayoutInterfaces" ,
194+ "@llvm-project//mlir:Dialect" ,
195+ "@llvm-project//mlir:DialectUtils" ,
196+ "@llvm-project//mlir:FuncDialect" ,
197+ "@llvm-project//mlir:IR" ,
198+ "@llvm-project//mlir:LinalgTransforms" ,
199+ "@llvm-project//mlir:MathDialect" ,
200+ "@llvm-project//mlir:MemRefDialect" ,
201+ "@llvm-project//mlir:Pass" ,
202+ "@llvm-project//mlir:SCFDialect" ,
203+ "@llvm-project//mlir:Support" ,
204+ "@llvm-project//mlir:TensorDialect" ,
205+ "@llvm-project//mlir:TransformUtils" ,
206+ "@llvm-project//mlir:VectorDialect" ,
207+ "@llvm-project//mlir:VectorTransforms" ,
208+ ] + mosaic_extension_deps ,
209+ )
210+
106211gentbl_cc_library (
107212 name = "tpu_inc_gen" ,
108213 # compatible with libtpu
@@ -170,6 +275,8 @@ cc_library(
170275 deps = [
171276 ":tpu_dialect" ,
172277 ":tpu_inc_gen" ,
278+ ":tpu_passes" ,
279+ ":tpu_serde_pass" ,
173280 "@com_google_absl//absl/log" ,
174281 "@com_google_absl//absl/log:check" ,
175282 "@llvm-project//llvm:Support" ,
0 commit comments