| load("//tensorflow/core/platform:rules_cc.bzl", "cc_library") |
| |
| # buildifier: disable=same-origin-load |
| load("//tensorflow:tensorflow.bzl", "get_compatible_with_cloud") |
| load("@llvm-project//mlir:tblgen.bzl", "gentbl_cc_library", "gentbl_filegroup", "td_library") |
| |
| package( |
| default_visibility = ["//visibility:public"], |
| licenses = ["notice"], |
| ) |
| |
| exports_files([ |
| "include/mlir-hlo/Dialect/mhlo/IR/chlo_ops.td", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td", |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.td", |
| ]) |
| |
| # Python extension sources. |
| exports_files(["python/MlirHloModule.cpp"]) |
| |
| filegroup( |
| name = "hlo_ops_td_filegroup", |
| srcs = glob(["include/mlir-hlo/Dialect/mhlo/IR/*.td"]), |
| ) |
| |
| td_library( |
| name = "hlo_ops_td_files", |
| srcs = glob(["include/mlir-hlo/Dialect/mhlo/IR/*.td"]), |
| compatible_with = get_compatible_with_cloud(), |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//mlir:ControlFlowInterfacesTdFiles", |
| "@llvm-project//mlir:CopyOpInterfaceTdFiles", |
| "@llvm-project//mlir:InferTypeOpInterfaceTdFiles", |
| "@llvm-project//mlir:LoopLikeInterfaceTdFiles", |
| "@llvm-project//mlir:MemRefOpsTdFiles", |
| "@llvm-project//mlir:OpBaseTdFiles", |
| "@llvm-project//mlir:QuantizationOpsTdFiles", |
| "@llvm-project//mlir:ShapeOpsTdFiles", |
| "@llvm-project//mlir:SideEffectTdFiles", |
| "@llvm-project//mlir:ViewLikeInterfaceTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "MhloPassIncGen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-pass-decls", |
| "-name=MHLO", |
| ], |
| "include/mlir-hlo/Dialect/mhlo/transforms/mhlo_passes.h.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/transforms/mhlo_passes.td", |
| deps = [ |
| "@llvm-project//mlir:PassBaseTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "LmhloPassIncGen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-pass-decls", |
| "-name=LMHLO", |
| ], |
| "include/mlir-hlo/Dialect/lhlo/transforms/lmhlo_passes.h.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo/transforms/lmhlo_passes.td", |
| deps = [ |
| "@llvm-project//mlir:PassBaseTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "chlo_ops_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/chlo_ops.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/chlo_ops.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/chlo_ops.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_base_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_base_attrs_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| tbl_outs = [ |
| ( |
| ["-gen-attrdef-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.h.inc", |
| ), |
| ( |
| ["-gen-attrdef-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_base_structs_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| tbl_outs = [ |
| ( |
| ["-gen-struct-attr-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_structs.h.inc", |
| ), |
| ( |
| ["-gen-struct-attr-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_structs.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_base_enums_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| tbl_outs = [ |
| ( |
| ["-gen-enum-decls"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.h.inc", |
| ), |
| ( |
| ["-gen-enum-defs"], |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "hlo_ops_pattern_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "lib/Dialect/mhlo/IR/", |
| tbl_outs = [ |
| ( |
| ["-gen-rewriters"], |
| "lib/Dialect/mhlo/IR/hlo_patterns.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "lib/Dialect/mhlo/IR/hlo_patterns.td", |
| deps = [ |
| ":hlo_ops_td_files", |
| "@llvm-project//mlir:FuncTdFiles", |
| "@llvm-project//mlir:TensorOpsTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_ops_structs_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-struct-attr-decls"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops_structs.h.inc", |
| ), |
| ( |
| ["-gen-struct-attr-defs"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops_structs.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops_structs.td", |
| deps = [":lhlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_ops_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.td", |
| deps = [":lhlo_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_gpu_ops_structs_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-struct-attr-decls"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.h.inc", |
| ), |
| ( |
| ["-gen-struct-attr-defs"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.td", |
| deps = [":lhlo_gpu_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_gpu_ops_enums_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-enum-decls"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.h.inc", |
| ), |
| ( |
| ["-gen-enum-defs"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.td", |
| deps = [":lhlo_gpu_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_gpu_ops_dialect_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-dialect-decls"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_dialect.h.inc", |
| ), |
| ( |
| ["-gen-dialect-defs"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_dialect.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.td", |
| deps = [":lhlo_gpu_ops_td_files"], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_gpu_ops_attrdefs_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-attrdef-decls"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_attrdefs.h.inc", |
| ), |
| ( |
| ["-gen-attrdef-defs"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_attrdefs.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.td", |
| deps = [":lhlo_gpu_ops_td_files"], |
| ) |
| |
| # TODO(b/232986749): Uncomment when the ticket is fixed. |
| # gentbl_filegroup( |
| # name = "hlo_ops_doc_gen", |
| # compatible_with = get_compatible_with_cloud(), |
| # tbl_outs = [ |
| # ( |
| # ["-gen-dialect-doc"], |
| # "g3doc/hlo_ops.md", |
| # ), |
| # ], |
| # tblgen = "@llvm-project//mlir:mlir-tblgen", |
| # td_file = "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td", |
| # deps = [":hlo_ops_td_files"], |
| # ) |
| |
| # TODO(b/232986749): Uncomment when the ticket is fixed. |
| # gentbl_filegroup( |
| # name = "lhlo_ops_doc_gen", |
| # compatible_with = get_compatible_with_cloud(), |
| # tbl_outs = [ |
| # ( |
| # ["-gen-dialect-doc"], |
| # "g3doc/lhlo_ops.md", |
| # ), |
| # ], |
| # tblgen = "@llvm-project//mlir:mlir-tblgen", |
| # td_file = "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.td", |
| # deps = [":lhlo_ops_td_files"], |
| # ) |
| |
| cc_library( |
| name = "hlo_ops_common", |
| srcs = ["lib/Dialect/mhlo/IR/hlo_ops_common.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_common.h"], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_gpu_ops_structs", |
| srcs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.cc.inc", |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.h.inc", |
| "lib/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_structs.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":lhlo_gpu_ops_structs_inc_gen", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| td_library( |
| name = "lhlo_gpu_ops_td_files", |
| srcs = glob(["include/mlir-hlo/Dialect/lhlo_gpu/IR/*.td"]), |
| compatible_with = get_compatible_with_cloud(), |
| includes = ["include"], |
| deps = [ |
| ":hlo_ops_td_files", |
| ":lhlo_ops_td_files", |
| "@llvm-project//mlir:SideEffectTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_gpu_ops_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.td", |
| deps = [":lhlo_gpu_ops_td_files"], |
| ) |
| |
| #TODO(aminim): revisit the naming and grouping of these rules post-move. |
| gentbl_cc_library( |
| name = "canonicalize_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "lib/Dialect/mhlo/IR/", |
| tbl_outs = [ |
| ( |
| ["-gen-rewriters"], |
| "lib/Dialect/mhlo/IR/mhlo_canonicalize.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "lib/Dialect/mhlo/IR/mhlo_canonicalize.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| td_library( |
| name = "lhlo_ops_td_files", |
| srcs = glob(["include/mlir-hlo/Dialect/lhlo/IR/*.td"]), |
| compatible_with = get_compatible_with_cloud(), |
| includes = ["include"], |
| deps = [ |
| ":hlo_ops_td_files", |
| "@llvm-project//mlir:ControlFlowInterfacesTdFiles", |
| "@llvm-project//mlir:CopyOpInterfaceTdFiles", |
| "@llvm-project//mlir:InferTypeOpInterfaceTdFiles", |
| "@llvm-project//mlir:LoopLikeInterfaceTdFiles", |
| "@llvm-project//mlir:MemRefOpsTdFiles", |
| "@llvm-project//mlir:OpBaseTdFiles", |
| "@llvm-project//mlir:ShapeOpsTdFiles", |
| "@llvm-project//mlir:SideEffectTdFiles", |
| "@llvm-project//mlir:ViewLikeInterfaceTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "lhlo_structured_interface_gen", |
| compatible_with = get_compatible_with_cloud(), |
| tbl_outs = [ |
| ( |
| ["-gen-op-interface-decls"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_structured_interface.h.inc", |
| ), |
| ( |
| ["-gen-op-interface-defs"], |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_structured_interface.cpp.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/lhlo/IR/lhlo_structured_interface.td", |
| deps = [":lhlo_ops_td_files"], |
| ) |
| |
| cc_library( |
| name = "lhlo_structured_interface", |
| srcs = [ |
| "lib/Dialect/lhlo/IR/lhlo_structured_interface.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_structured_interface.h", |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_structured_interface.h.inc", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":lhlo_structured_interface_gen", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_ops_base_structs", |
| srcs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.h", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.h.inc", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.h", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.h.inc", |
| "lib/Dialect/mhlo/IR/hlo_ops_base_structs.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_structs.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo_ops_base_attrs_inc_gen", |
| ":hlo_ops_base_enums_inc_gen", |
| ":hlo_ops_base_structs_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_ops_base_enums", |
| srcs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.h.inc", |
| "lib/Dialect/mhlo/IR/hlo_ops_base_enums.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_enums.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo_ops_base_enums_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| cc_library( |
| name = "convert_op_folder", |
| srcs = ["lib/utils/convert_op_folder.cc"], |
| hdrs = ["include/mlir-hlo/utils/convert_op_folder.h"], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo", |
| srcs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.cc.inc", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.h.inc", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.cc.inc", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.h.inc", |
| "lib/Dialect/mhlo/IR/chlo_ops.cc", |
| "lib/Dialect/mhlo/IR/hlo_ops.cc", |
| "lib/utils/broadcast_utils.cc", |
| "lib/utils/hlo_utils.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/IR/chlo_ops.h", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.h", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base.h", |
| "include/mlir-hlo/Dialect/mhlo/IR/hlo_ops_base_attrs.h", |
| "include/mlir-hlo/utils/broadcast_utils.h", |
| "include/mlir-hlo/utils/hlo_utils.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":canonicalize_inc_gen", |
| ":chlo_ops_inc_gen", |
| ":convert_op_folder", |
| ":hlo_ops_base_attrs_inc_gen", |
| ":hlo_ops_base_enums", |
| ":hlo_ops_base_inc_gen", |
| ":hlo_ops_base_structs", |
| ":hlo_ops_common", |
| ":hlo_ops_inc_gen", |
| ":hlo_ops_pattern_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ControlFlowInterfaces", |
| "@llvm-project//mlir:Dialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:QuantOps", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:SideEffects", |
| "@llvm-project//mlir:SparseTensor", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo", |
| srcs = [ |
| "lib/Dialect/lhlo/IR/lhlo_ops.cc", |
| "lib/Dialect/lhlo/IR/lhlo_ops_structs.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops.h", |
| "include/mlir-hlo/Dialect/lhlo/IR/lhlo_ops_structs.h", |
| "include/mlir-hlo/utils/lhlo_utils.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo", |
| ":hlo_ops_base_enums", |
| ":hlo_ops_base_inc_gen", |
| ":hlo_ops_base_structs", |
| ":hlo_ops_common", |
| ":lhlo_ops_inc_gen", |
| ":lhlo_ops_structs_inc_gen", |
| ":lhlo_structured_interface", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:ControlFlowInterfaces", |
| "@llvm-project//mlir:CopyOpInterface", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SideEffects", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:Transforms", |
| "@llvm-project//mlir:ViewLikeInterface", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_gpu", |
| srcs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.cc.inc", |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.h", |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.h.inc", |
| "lib/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.cc", |
| "lib/Dialect/lhlo_gpu/IR/lhlo_gpu_ops_enums.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo", |
| ":hlo_ops_base_enums", |
| ":hlo_ops_base_structs", |
| ":hlo_ops_common", |
| ":lhlo", |
| ":lhlo_gpu_ops_attrdefs_inc_gen", |
| ":lhlo_gpu_ops_dialect_inc_gen", |
| ":lhlo_gpu_ops_enums_inc_gen", |
| ":lhlo_gpu_ops_inc_gen", |
| ":lhlo_gpu_ops_ops", |
| ":lhlo_gpu_ops_structs", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:ControlFlowInterfaces", |
| "@llvm-project//mlir:CopyOpInterface", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SideEffects", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:Transforms", |
| "@llvm-project//mlir:ViewLikeInterface", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_gpu_ops_ops", |
| srcs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.cc.inc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo_gpu/IR/lhlo_gpu_ops.h.inc", |
| ], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:ControlFlowInterfaces", |
| "@llvm-project//mlir:CopyOpInterface", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SideEffects", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:Transforms", |
| "@llvm-project//mlir:ViewLikeInterface", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_dialect_registration", |
| srcs = ["lib/Dialect/mhlo/IR/init.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/IR/register.h"], |
| deps = [ |
| ":hlo", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| cc_library( |
| name = "sink_constants_to_control_flow", |
| srcs = [ |
| "lib/Dialect/mhlo/transforms/sink_constants_to_control_flow.cc", |
| ], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/passes.h"], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "type_conversion", |
| srcs = ["lib/Dialect/mhlo/transforms/type_conversion.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/type_conversion.h"], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "map_lmhlo_to_scalar_op", |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/map_lmhlo_to_scalar_op.h"], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ":map_lhlo_to_hlo_op", |
| ":map_mhlo_to_scalar_op", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:SCFDialect", |
| ], |
| ) |
| |
| cc_library( |
| name = "map_mhlo_to_scalar_op", |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/map_mhlo_to_scalar_op.h"], |
| deps = [ |
| ":hlo", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:VectorOps", |
| ], |
| ) |
| |
| cc_library( |
| name = "map_chlo_to_hlo_op", |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/map_chlo_to_hlo_op.h"], |
| deps = [ |
| ":hlo", |
| "@llvm-project//mlir:IR", |
| ], |
| ) |
| |
| cc_library( |
| name = "map_hlo_to_lhlo_op", |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/map_hlo_to_lhlo_op.h"], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ], |
| ) |
| |
| cc_library( |
| name = "map_lhlo_to_hlo_op", |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/map_lhlo_to_hlo_op.h"], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_legalize_to_affine", |
| srcs = ["lib/Dialect/lhlo/transforms/lhlo_legalize_to_affine.cc"], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ":lhlo_pass_details", |
| ":map_lmhlo_to_scalar_op", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_legalize_to_parallel_loops", |
| srcs = ["lib/Dialect/lhlo/transforms/lhlo_legalize_to_parallel_loops.cc"], |
| deps = [ |
| ":lhlo", |
| ":lhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "codegen_utils", |
| srcs = ["lib/utils/codegen_utils.cc"], |
| hdrs = ["include/mlir-hlo/utils/codegen_utils.h"], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LLVMDialect", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| cc_library( |
| name = "placement_utils", |
| hdrs = ["include/mlir-hlo/utils/placement_utils.h"], |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_elemental_utils", |
| srcs = ["lib/Dialect/lhlo/transforms/lhlo_elemental_utils.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/lhlo_elemental_utils.h"], |
| deps = [ |
| ":codegen_utils", |
| ":hlo", |
| ":lhlo", |
| ":map_lmhlo_to_scalar_op", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:GPUDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_to_linalg", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_to_linalg.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":map_mhlo_to_scalar_op", |
| ":mhlo_pass_details", |
| ":type_conversion", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ArithmeticUtils", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:SparseTensor", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TensorUtils", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_shape_computations", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_shape_computations.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":map_mhlo_to_scalar_op", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_legalize_shape_ops_to_standard", |
| srcs = ["lib/Dialect/mhlo/transforms/hlo_legalize_shape_ops_to_standard.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| ":type_conversion", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "merge_assuming_ops", |
| srcs = ["lib/Dialect/mhlo/transforms/merge_assuming_ops.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":map_chlo_to_hlo_op", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "shape_reification_pass", |
| srcs = ["lib/Dialect/mhlo/transforms/shape_reification_pass.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "constraint_fusion_pass", |
| srcs = ["lib/Dialect/mhlo/transforms/constraint_fusion_pass.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "group_reduction_dimensions", |
| srcs = ["lib/Dialect/mhlo/transforms/group_reduction_dimensions.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "broadcast_propagation", |
| srcs = ["lib/Dialect/mhlo/transforms/broadcast_propagation.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/passes.h"], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:DialectUtils", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "rank_specialization", |
| srcs = ["lib/Dialect/mhlo/transforms/rank_specialization.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ControlFlowOps", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_legalize_to_gpu", |
| srcs = ["lib/Dialect/lhlo/transforms/lhlo_legalize_to_gpu.cc"], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ":lhlo_pass_details", |
| ":map_lmhlo_to_scalar_op", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:GPUDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_fuse_linalg", |
| srcs = ["lib/Dialect/lhlo/transforms/lhlo_fuse_linalg.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/passes.h"], |
| deps = [ |
| ":lhlo", |
| ":lhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgTransforms", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:ViewLikeInterface", |
| ], |
| ) |
| |
| cc_library( |
| name = "mhlo_canonicalize_reduction", |
| srcs = ["lib/Dialect/mhlo/transforms/mhlo_canonicalize_reduction.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/passes.h"], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:TensorDialect", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_legalize_to_lhlo", |
| srcs = ["lib/Dialect/mhlo/transforms/hlo_legalize_to_lhlo.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ":map_hlo_to_lhlo_op", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:ShapeTransforms", |
| "@llvm-project//mlir:StandardOpsTransforms", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_legalize_to_memref", |
| srcs = ["lib/Dialect/mhlo/transforms/hlo_legalize_to_memref.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/bufferizable_op_interface_impl.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| ":type_conversion", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:ShapeTransforms", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "hlo_legalize_to_arithmetic", |
| srcs = ["lib/Dialect/mhlo/transforms/hlo_legalize_to_arithmetic.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "legalize_to_standard_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "lib/Dialect/mhlo/transforms/", |
| tbl_outs = [ |
| ( |
| ["-gen-rewriters"], |
| "lib/Dialect/mhlo/transforms/generated_legalize_to_standard.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "lib/Dialect/mhlo/transforms/legalize_to_standard_patterns.td", |
| deps = [ |
| ":hlo_ops_td_files", |
| "@llvm-project//mlir:ArithmeticOpsTdFiles", |
| "@llvm-project//mlir:FuncTdFiles", |
| "@llvm-project//mlir:MathOpsTdFiles", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_control_flow", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_control_flow.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/passes.h"], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_to_standard", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_to_standard.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/passes.h"], |
| deps = [ |
| ":hlo", |
| ":legalize_to_standard_inc_gen", |
| ":legalize_trigonometric_to_approximation", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_einsum_to_dot_general", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_einsum_to_dot_general.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_gather_to_torch_index_select", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_gather_to_torch_index_select.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "collapse_elementwise_map", |
| srcs = ["lib/Dialect/mhlo/transforms/collapse_elementwise_map.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "convert_to_signless_pass", |
| srcs = ["lib/Dialect/mhlo/transforms/convert_to_signless_pass.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| ":type_conversion", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_trigonometric_to_approximation", |
| srcs = ["lib/Dialect/mhlo/transforms/legalize_trigonometric_to_approximation.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "lower_complex_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "lib/Dialect/mhlo/transforms/", |
| tbl_outs = [ |
| ( |
| ["-gen-rewriters"], |
| "lib/Dialect/mhlo/transforms/generated_lower_complex.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "lib/Dialect/mhlo/transforms/lower_complex_patterns.td", |
| deps = [ |
| ":hlo_ops_td_files", |
| "@llvm-project//mlir:FuncTdFiles", |
| ], |
| ) |
| |
| cc_library( |
| #TODO(aminim): find a better name here? |
| name = "mhlo_to_mhlo_lowering_patterns", |
| srcs = [ |
| "lib/Dialect/mhlo/transforms/lower_complex.cc", |
| "lib/Dialect/mhlo/transforms/lower_general_dot.cc", |
| "lib/Dialect/mhlo/transforms/optimize_mhlo.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":lower_complex_inc_gen", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "materialize_broadcasts", |
| srcs = [ |
| "lib/Dialect/mhlo/transforms/materialize_broadcasts.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| ], |
| deps = [ |
| ":hlo", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "unfuse_batch_norm", |
| srcs = ["lib/Dialect/mhlo/transforms/unfuse_batch_norm.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "legalize_to_tensor_op", |
| srcs = ["lib/Dialect/lhlo/transforms/legalize_to_tensor_op.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/lhlo/transforms/passes.h"], |
| deps = [ |
| ":lhlo", |
| ":lhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "mhlo_flatten_tuple", |
| srcs = ["lib/Dialect/mhlo/transforms/mhlo_flatten_tuple.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| ":transforms_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "chlo_legalize_to_hlo", |
| srcs = ["lib/Dialect/mhlo/transforms/chlo_legalize_to_hlo.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h"], |
| deps = [ |
| ":chlo_legalize_to_hlo_inc_gen", |
| ":hlo", |
| ":map_chlo_to_hlo_op", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "chlo_legalize_to_hlo_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "lib/Dialect/mhlo/transforms/", |
| tbl_outs = [ |
| ( |
| ["-gen-rewriters"], |
| "lib/Dialect/mhlo/transforms/generated_chlo_legalize_to_hlo.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "lib/Dialect/mhlo/transforms/chlo_legalize_to_hlo_patterns.td", |
| deps = [":hlo_ops_td_files"], |
| ) |
| |
| cc_library( |
| name = "expand_hlo_tuples", |
| srcs = [ |
| "lib/Dialect/mhlo/transforms/expand_hlo_tuples.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":mhlo_pass_details", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| cc_library( |
| name = "mhlo_pass_details", |
| hdrs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/PassDetail.h", |
| ], |
| visibility = [ |
| "//visibility:private", # This target is a private detail of pass implementations |
| ], |
| deps = [ |
| ":MhloPassIncGen", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| cc_library( |
| name = "lhlo_pass_details", |
| hdrs = [ |
| "include/mlir-hlo/Dialect/lhlo/transforms/PassDetail.h", |
| ], |
| visibility = [ |
| "//visibility:private", # This target is a private detail of pass implementations |
| ], |
| deps = [ |
| ":LmhloPassIncGen", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| cc_library( |
| name = "test_passes", |
| srcs = [ |
| "include/mlir-hlo/Dialect/mhlo/transforms/rewriters.h", |
| "lib/Analysis/test_shape_component_analysis.cc", |
| "lib/Analysis/test_userange_analysis.cc", |
| "lib/Dialect/mhlo/transforms/chlo_legalize_to_hlo_pass.cc", |
| "lib/Dialect/mhlo/transforms/materialize_broadcasts_pass.cc", |
| "lib/Dialect/mhlo/transforms/optimize_mhlo_pass.cc", |
| "lib/Dialect/mhlo/transforms/restrict_max_rank.cc", |
| "lib/Dialect/mhlo/transforms/test_infer_shaped_type_pass.cc", |
| "lib/Dialect/mhlo/transforms/unfuse_batch_norm_pass.cc", |
| ], |
| deps = [ |
| ":chlo_legalize_to_hlo", # build-cleaner: keep |
| ":hlo", |
| ":lhlo", |
| ":materialize_broadcasts", # build-cleaner: keep |
| ":mhlo_pass_details", |
| ":mhlo_to_mhlo_lowering_patterns", |
| ":shape_component_analysis", |
| ":transforms_pass_details", |
| ":unfuse_batch_norm", # build-cleaner: keep |
| ":userange_analysis", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:LLVMDialect", |
| "@llvm-project//mlir:LLVMTransforms", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "all_passes", |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/passes.h", |
| "include/mlir-hlo/Dialect/lhlo/transforms/register_passes.h", |
| "include/mlir-hlo/Dialect/mhlo/transforms/register_passes.h", |
| "include/mlir-hlo/Transforms/register_passes.h", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":LmhloPassIncGen", |
| ":MhloPassIncGen", |
| ":broadcast_propagation", |
| ":buffer_packing", |
| ":buffer_reuse", |
| ":bufferize", |
| ":bufferize_pass", |
| ":bufferize_tiled_loop", |
| ":chlo_legalize_to_hlo", |
| ":collapse_elementwise_map", |
| ":constraint_fusion_pass", |
| ":convert_to_signless_pass", |
| ":copy_removal", |
| ":expand_hlo_tuples", |
| ":gml_st_passes_inc_gen", |
| ":gml_st_to_scf", |
| ":greedy_tiling", |
| ":group_reduction_dimensions", |
| ":hlo_legalize_shape_ops_to_standard", |
| ":hlo_legalize_to_arithmetic", |
| ":hlo_legalize_to_lhlo", |
| ":hlo_legalize_to_memref", |
| ":legalize_control_flow", |
| ":legalize_einsum_to_dot_general", |
| ":legalize_gather_to_torch_index_select", |
| ":legalize_shape_computations", |
| ":legalize_to_linalg", |
| ":legalize_to_standard", |
| ":legalize_to_tensor_op", |
| ":legalize_trigonometric_to_approximation", |
| ":lhlo", |
| ":lhlo_fuse_linalg", |
| ":lhlo_legalize_to_affine", |
| ":lhlo_legalize_to_gpu", |
| ":lhlo_legalize_to_parallel_loops", |
| ":lower_index_cast", |
| ":merge_assuming_ops", |
| ":mhlo_canonicalize_reduction", |
| ":mhlo_flatten_tuple", |
| ":mhlo_to_mhlo_lowering_patterns", |
| ":propagate_static_shapes_to_kernel", |
| ":rank_specialization", |
| ":shape_reification_pass", |
| ":shape_simplification", |
| ":sink_constants_to_control_flow", |
| ":symbolic_shape_optimization", |
| ":test_passes", |
| ":tile_loops_pass", |
| ":transforms_pass_details", |
| ":transforms_pass_inc_gen", |
| ":userange_analysis", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "gml_st_test_passes_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-pass-decls", |
| "-name=GmlStTest", |
| ], |
| "include/mlir-hlo/Dialect/gml_st/transforms/test_passes.h.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/gml_st/transforms/test_passes.td", |
| deps = ["@llvm-project//mlir:PassBaseTdFiles"], |
| ) |
| |
| cc_library( |
| name = "all_test_passes", |
| srcs = ["lib/Dialect/gml_st/transforms/test_passes.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/gml_st/transforms/test_passes.h"], |
| includes = ["include"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":gml_st_bufferizable_op_interface", |
| ":gml_st_test_passes_inc_gen", |
| ":gml_st_transforms", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgTransforms", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "transforms_pass_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-pass-decls", |
| "-name=LMHLOTransforms", |
| ], |
| "include/mlir-hlo/Transforms/passes.h.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Transforms/passes.td", |
| deps = [ |
| "@llvm-project//mlir:PassBaseTdFiles", |
| ], |
| ) |
| |
| cc_library( |
| name = "transforms_pass_details", |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| visibility = [ |
| "//visibility:private", # This target is a private detail of pass implementations |
| ], |
| deps = [ |
| ":transforms_pass_inc_gen", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| ], |
| ) |
| |
| cc_library( |
| name = "userange_analysis", |
| srcs = ["lib/Analysis/userange_analysis.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Analysis/userange_analysis.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "shape_component_analysis", |
| srcs = ["lib/Analysis/shape_component_analysis.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Analysis/shape_component_analysis.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| ], |
| ) |
| |
| cc_library( |
| name = "buffer_packing", |
| srcs = ["lib/Transforms/buffer_packing.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Analysis/userange_analysis.h", |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "buffer_reuse", |
| srcs = ["lib/Transforms/buffer_reuse.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Analysis/userange_analysis.h", |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "copy_removal", |
| srcs = ["lib/Transforms/copy_removal.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Analysis/userange_analysis.h", |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":lhlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:Analysis", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:CopyOpInterface", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "symbolic_shape_optimization", |
| srcs = ["lib/Transforms/symbolic_shape_optimization.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":shape_component_analysis", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "bufferize", |
| srcs = ["lib/Transforms/bufferize.cc"], |
| hdrs = ["include/mlir-hlo/Transforms/rewriters.h"], |
| compatible_with = get_compatible_with_cloud(), |
| deps = [ |
| "//tensorflow/compiler/mlir/hlo", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "bufferize_tiled_loop", |
| srcs = ["lib/Dialect/gml_st/transforms/bufferize_tiled_loop.cc"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/pass_detail.h", |
| "include/mlir-hlo/Dialect/gml_st/transforms/passes.h", |
| "include/mlir-hlo/Dialect/gml_st/transforms/rewriters.h", |
| ], |
| compatible_with = get_compatible_with_cloud(), |
| deps = [ |
| ":gml_st", |
| ":gml_st_passes_inc_gen", |
| ":hlo", |
| ":lhlo", |
| ":type_conversion", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:ControlFlowOps", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:FuncTransforms", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LLVMDialect", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:LinalgTransforms", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:SCFTransforms", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:ShapeTransforms", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TensorTransforms", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:Transforms", |
| "@llvm-project//mlir:VectorOps", |
| "@llvm-project//mlir:VectorTransforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "bufferize_pass", |
| srcs = [ |
| "lib/Transforms/bufferize_pass.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":bufferize", |
| ":bufferize_tiled_loop", |
| ":gml_st", |
| ":gml_st_bufferizable_op_interface", |
| ":hlo", |
| ":hlo_legalize_to_memref", |
| ":legalize_trigonometric_to_approximation", |
| ":lhlo", |
| ":transforms_pass_inc_gen", |
| ":type_conversion", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:ArithmeticTransforms", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:ComplexDialect", |
| "@llvm-project//mlir:ControlFlowOps", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:FuncTransforms", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LLVMDialect", |
| "@llvm-project//mlir:LinalgOps", |
| "@llvm-project//mlir:LinalgTransforms", |
| "@llvm-project//mlir:MathDialect", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:SCFTransforms", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:ShapeTransforms", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TensorTransforms", |
| "@llvm-project//mlir:TransformUtils", |
| "@llvm-project//mlir:VectorOps", |
| "@llvm-project//mlir:VectorTransforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "propagate_static_shapes_to_kernel", |
| srcs = [ |
| "lib/Transforms/propagate_static_shapes_to_kernel.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:GPUDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LLVMDialect", |
| "@llvm-project//mlir:Parser", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Rewrite", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "lower_index_cast", |
| srcs = [ |
| "lib/Transforms/lower_index_cast_pass.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "shape_simplification", |
| srcs = [ |
| "lib/Transforms/shape_simplification.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "//tensorflow/compiler/mlir/tools/kernel_gen/transforms:kernel_gen_passes_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Shape", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:TransformUtils", |
| ], |
| ) |
| |
| cc_library( |
| name = "tile_loops_pass", |
| srcs = [ |
| "lib/Transforms/tile_loops_pass.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Transforms/PassDetail.h", |
| "include/mlir-hlo/Transforms/passes.h", |
| ], |
| deps = [ |
| ":hlo", |
| ":transforms_pass_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:SCFTransforms", |
| "@llvm-project//mlir:SCFUtils", |
| ], |
| ) |
| |
| CAPI_HEADERS = [ |
| "include/mlir-hlo-c/Attributes.h", |
| "include/mlir-hlo-c/Dialects.h", |
| "include/mlir-hlo-c/Passes.h", |
| "include/mlir-hlo-c/Types.h", |
| ] |
| |
| CAPI_SOURCES = [ |
| "lib/CAPI/Attributes.cpp", |
| "lib/CAPI/Dialects.cpp", |
| "lib/CAPI/Passes.cpp", |
| "lib/CAPI/Types.cpp", |
| ] |
| |
| cc_library( |
| name = "CAPI", |
| srcs = CAPI_SOURCES, |
| hdrs = CAPI_HEADERS, |
| deps = [ |
| ":all_passes", |
| ":hlo", |
| "@llvm-project//mlir:CAPIIR", |
| ], |
| ) |
| |
| # Header-only target, used when using the C API from a separate shared library. |
| cc_library( |
| name = "CAPIHeaders", |
| hdrs = CAPI_HEADERS, |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//mlir:CAPIIRHeaders", |
| ], |
| ) |
| |
| # Alwayslink target, used when exporting the C API from a shared library. |
| cc_library( |
| name = "CAPIObjects", |
| srcs = CAPI_SOURCES, |
| hdrs = CAPI_HEADERS, |
| deps = [ |
| ":all_passes", |
| ":hlo", |
| "@llvm-project//mlir:CAPIIRObjects", |
| ], |
| alwayslink = True, |
| ) |
| |
| cc_binary( |
| name = "mlir-hlo-opt", |
| srcs = ["tools/mlir-hlo-opt/mlir-hlo-opt.cpp"], |
| deps = [ |
| ":all_passes", |
| ":all_test_passes", |
| ":gml_st", |
| ":hlo_dialect_registration", |
| ":lhlo", |
| ":lhlo_gpu", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:AllPassesAndDialects", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:MlirOptLib", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| # Python library. |
| |
| td_library( |
| name = "MhloOpsPyTdFiles", |
| srcs = [ |
| "@llvm-project//mlir:include/mlir/Bindings/Python/Attributes.td", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":hlo_ops_td_files", |
| "@llvm-project//mlir:OpBaseTdFiles", |
| ], |
| ) |
| |
| gentbl_filegroup( |
| name = "MhloOpsPyGen", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-python-op-bindings", |
| "-bind-dialect=mhlo", |
| ], |
| "python/mlir/dialects/_mhlo_ops_gen.py", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "python/mlir/dialects/MhloOps.td", |
| deps = [ |
| ":MhloOpsPyTdFiles", |
| ], |
| ) |
| |
| gentbl_filegroup( |
| name = "ChloOpsPyGen", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-python-op-bindings", |
| "-bind-dialect=chlo", |
| ], |
| "python/mlir/dialects/_chlo_ops_gen.py", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "python/mlir/dialects/ChloOps.td", |
| deps = [ |
| ":MhloOpsPyTdFiles", |
| ], |
| ) |
| |
| filegroup( |
| name = "MhloOpsPyFiles", |
| srcs = [ |
| "python/mlir/dialects/chlo.py", |
| "python/mlir/dialects/mhlo.py", |
| ":ChloOpsPyGen", |
| ":MhloOpsPyGen", |
| ], |
| ) |
| |
| td_library( |
| name = "gml_st_ops_td_files", |
| srcs = glob(["include/mlir-hlo/Dialect/gml_st/IR/*.td"]), |
| compatible_with = get_compatible_with_cloud(), |
| includes = ["include"], |
| deps = [ |
| "@llvm-project//mlir:ControlFlowInterfacesTdFiles", |
| "@llvm-project//mlir:InferTypeOpInterfaceTdFiles", |
| "@llvm-project//mlir:LoopLikeInterfaceTdFiles", |
| "@llvm-project//mlir:OpBaseTdFiles", |
| "@llvm-project//mlir:SideEffectInterfacesTdFiles", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "gml_st_ops_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-decls"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_ops.h.inc", |
| ), |
| ( |
| ["-gen-op-defs"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_ops.cc.inc", |
| ), |
| ( |
| ["-gen-dialect-decls"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_dialect.h.inc", |
| ), |
| ( |
| ["-gen-dialect-defs"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_dialect.cc.inc", |
| ), |
| ( |
| ["-gen-typedef-decls"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_types.h.inc", |
| ), |
| ( |
| ["-gen-typedef-defs"], |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_types.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/gml_st/IR/gml_st_ops.td", |
| deps = [":gml_st_ops_td_files"], |
| ) |
| |
| cc_library( |
| name = "gml_st", |
| srcs = [ |
| "lib/Dialect/gml_st/IR/gml_st_ops.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/IR/gml_st_ops.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":gml_st_ops_inc_gen", |
| "@llvm-project//llvm:Support", |
| "@llvm-project//mlir:ControlFlowInterfaces", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:InferTypeOpInterface", |
| "@llvm-project//mlir:LoopLikeInterface", |
| "@llvm-project//mlir:MemRefDialect", |
| "@llvm-project//mlir:SideEffectInterfaces", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:TensorDialect", |
| "@llvm-project//mlir:ViewLikeInterface", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "tiling_interface_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| ["-gen-op-interface-decls"], |
| "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.h.inc", |
| ), |
| ( |
| ["-gen-op-interface-defs"], |
| "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.cc.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.td", |
| deps = ["@llvm-project//mlir:OpBaseTdFiles"], |
| ) |
| |
| cc_library( |
| name = "tiling_interface", |
| srcs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.cc.inc", |
| "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.h.inc", |
| "lib/Dialect/gml_st/transforms/tiling_interface.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/tiling_interface.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":gml_st", |
| ":hlo", |
| ":map_mhlo_to_scalar_op", |
| ":tiling_interface_inc_gen", |
| "@llvm-project//mlir:ArithmeticDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "gml_st_bufferizable_op_interface", |
| srcs = ["lib/Dialect/gml_st/transforms/bufferizable_op_interface_impl.cpp"], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/bufferizable_op_interface_impl.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":gml_st", |
| "@llvm-project//mlir:BufferizationDialect", |
| "@llvm-project//mlir:BufferizationTransforms", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| gentbl_cc_library( |
| name = "gml_st_passes_inc_gen", |
| compatible_with = get_compatible_with_cloud(), |
| strip_include_prefix = "include", |
| tbl_outs = [ |
| ( |
| [ |
| "-gen-pass-decls", |
| "-name=GmlSt", |
| ], |
| "include/mlir-hlo/Dialect/gml_st/transforms/passes.h.inc", |
| ), |
| ], |
| tblgen = "@llvm-project//mlir:mlir-tblgen", |
| td_file = "include/mlir-hlo/Dialect/gml_st/transforms/passes.td", |
| deps = [ |
| "@llvm-project//mlir:PassBaseTdFiles", |
| ], |
| ) |
| |
| cc_library( |
| name = "greedy_tiling", |
| srcs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/pass_detail.h", |
| "lib/Dialect/gml_st/transforms/greedy_tiling.cc", |
| ], |
| hdrs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/passes.h", |
| ], |
| includes = ["include"], |
| deps = [ |
| ":gml_st", |
| ":gml_st_passes_inc_gen", |
| ":hlo", |
| ":tiling_interface", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:Support", |
| ], |
| ) |
| |
| cc_library( |
| name = "gml_st_to_scf", |
| srcs = [ |
| "include/mlir-hlo/Dialect/gml_st/transforms/pass_detail.h", |
| "lib/Dialect/gml_st/transforms/gml_st_to_scf.cc", |
| ], |
| hdrs = ["include/mlir-hlo/Dialect/gml_st/transforms/passes.h"], |
| includes = ["include"], |
| deps = [ |
| ":gml_st", |
| ":gml_st_passes_inc_gen", |
| "@llvm-project//mlir:FuncDialect", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:Pass", |
| "@llvm-project//mlir:SCFDialect", |
| "@llvm-project//mlir:SCFTransforms", |
| "@llvm-project//mlir:Support", |
| "@llvm-project//mlir:Transforms", |
| ], |
| ) |
| |
| cc_library( |
| name = "gml_st_transforms", |
| srcs = ["lib/Dialect/gml_st/transforms/transforms.cc"], |
| hdrs = ["include/mlir-hlo/Dialect/gml_st/transforms/transforms.h"], |
| includes = ["include"], |
| deps = [ |
| ":gml_st", |
| "@llvm-project//mlir:Affine", |
| "@llvm-project//mlir:DialectUtils", |
| "@llvm-project//mlir:IR", |
| "@llvm-project//mlir:LinalgTransforms", |
| "@llvm-project//mlir:SCFUtils", |
| ], |
| ) |
| |
| # A light-weight runtime support library, used by MLIR code that results |
| # after lowering some ops in the vector and sparse tensor dialects. |
| cc_binary( |
| name = "libmlir_c_runner_utils.so", |
| linkshared = True, |
| linkstatic = False, |
| deps = [ |
| "@llvm-project//mlir:mlir_c_runner_utils", |
| ], |
| ) |