blob: 7d3091f921fd026ef5f616ddf12e8a0fe266a2f1 [file] [log] [blame]
load("//third_party/mlir:tblgen.bzl", "gentbl")
load("//tensorflow:tensorflow.bzl", "tf_cc_binary")
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"], # Apache 2.0
)
filegroup(
name = "tfjs_ops_td_files",
srcs = [
"ir/tfjs_ops.td",
"@llvm-project//mlir:OpBaseTdFiles",
],
)
gentbl(
name = "tfjs_inc_gen",
tbl_outs = [
(
"-gen-op-decls",
"ir/tfjs_ops.h.inc",
),
(
"-gen-op-defs",
"ir/tfjs_ops.cc.inc",
),
(
"-gen-dialect-decls",
"ir/tfjs_dialect.h.inc",
),
(
"-gen-dialect-doc",
"g3doc/tfjs_dialect.md",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "ir/tfjs_ops.td",
td_srcs = [
"ir/tfjs_ops.td",
"@llvm-project//mlir:OpBaseTdFiles",
"@llvm-project//mlir:include/mlir/Interfaces/LoopLikeInterface.td",
"@llvm-project//mlir:include/mlir/Interfaces/SideEffectInterfaces.td",
],
)
cc_library(
name = "tensorflow_js",
srcs = [
"ir/tfjs_dialect.h.inc",
"ir/tfjs_ops.cc",
"ir/tfjs_ops.cc.inc",
"ir/tfjs_ops.h.inc",
],
hdrs = [
"ir/tfjs_ops.h",
],
deps = [
":tfjs_inc_gen",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:Dialect",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:SideEffects",
"@llvm-project//mlir:StandardOps",
"@llvm-project//mlir:Support",
"@llvm-project//mlir:TransformUtils",
],
alwayslink = 1,
)
cc_library(
name = "tensorflow_js_dialect_registration",
srcs = [
"ir/dialect_registration.cc",
],
deps = [
":tensorflow_js",
],
alwayslink = 1,
)
gentbl(
name = "tfjs_optimize_inc_gen",
tbl_outs = [
(
"-gen-rewriters",
"transforms/generated_optimize.inc",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "transforms/optimize_pattern.td",
td_srcs = [
":tfjs_ops_td_files",
"@llvm-project//mlir:StdOpsTdFiles",
"//tensorflow/compiler/mlir/tensorflow:tensorflow_ops_td_files",
],
)
cc_library(
name = "tfjs_optimize",
srcs = [
"transforms/generated_optimize.inc",
"transforms/optimize.cc",
],
hdrs = [
"transforms/passes.h",
],
deps = [
":tensorflow_js",
":tensorflow_js_dialect_registration",
"//tensorflow/compiler/mlir/tensorflow",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:Analysis",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Pass",
"@llvm-project//mlir:StandardOps",
"@llvm-project//mlir:Support",
],
alwayslink = 1,
)
cc_library(
name = "tensorflow_js_passes",
srcs = ["tf_tfjs_passes.cc"],
hdrs = [
"tf_tfjs_passes.h",
],
deps = [
":tfjs_optimize",
"//tensorflow/compiler/mlir/tensorflow",
"//tensorflow/compiler/mlir/tensorflow:decode_constant_pass",
"//tensorflow/compiler/mlir/tensorflow:tensorflow_dialect_registration",
"//tensorflow/compiler/mlir/tensorflow:tensorflow_passes",
"//tensorflow/compiler/mlir/tensorflow:tf_graph_optimization_pass",
"//tensorflow/compiler/mlir/tensorflow:tf_saved_model_passes",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Pass",
"@llvm-project//mlir:Transforms",
],
)
cc_library(
name = "json_translate_lib",
srcs = [
"translate/json_translate.cc",
],
hdrs = [
"translate/json_translate.h",
],
deps = [
":tensorflow_js",
":tensorflow_js_dialect_registration",
"//tensorflow/compiler/mlir/tensorflow",
"//tensorflow/compiler/mlir/tensorflow:convert_graphdef",
"//tensorflow/compiler/mlir/tensorflow:export_utils",
"//tensorflow/compiler/mlir/tensorflow:mlir_roundtrip_flags",
"//tensorflow/compiler/mlir/tensorflow:tensorflow_dialect_registration",
"//tensorflow/compiler/xla:statusor",
"//tensorflow/core:framework",
"//tensorflow/core:graph",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/status",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Support",
"@llvm-project//mlir:Translation",
],
alwayslink = 1,
)
cc_library(
name = "tf_to_tfjs_json",
srcs = ["translate/tf_to_tfjs_json.cc"],
hdrs = [
"translate/tf_to_tfjs_json.h",
],
deps = [
":json_translate_lib",
":tfjs_optimize",
"//tensorflow/compiler/mlir/tensorflow",
"//tensorflow/compiler/mlir/tensorflow:decode_constant_pass",
"//tensorflow/compiler/mlir/tensorflow:error_util",
"//tensorflow/compiler/mlir/tensorflow:tf_dialect_lib",
"//tensorflow/compiler/mlir/tensorflow:tf_dialect_passes",
"//tensorflow/compiler/mlir/tensorflow:translate_cl_options",
"//tensorflow/compiler/mlir/tensorflow:translate_lib",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/stream_executor/lib",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:span",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:AllPassesAndDialects",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Parser",
"@llvm-project//mlir:Pass",
"@llvm-project//mlir:Support",
],
alwayslink = 1,
)
tf_cc_binary(
name = "json_translate",
deps = [
":json_translate_lib",
"@llvm-project//mlir:MlirTranslateMain",
],
)
filegroup(
name = "tf_tfjs_translate_main",
srcs = [
"translate/tf_tfjs_translate.cc",
],
)
tf_cc_binary(
name = "tf_tfjs_translate",
srcs = [":tf_tfjs_translate_main"],
deps = [
":json_translate_lib",
":tensorflow_js_passes",
":tf_to_tfjs_json",
":tfjs_optimize",
"//tensorflow/compiler/mlir:init_mlir",
"//tensorflow/compiler/mlir/tensorflow:translate_cl_options",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/platform:errors",
"//tensorflow/stream_executor/lib",
"@com_google_absl//absl/strings",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Pass",
"@llvm-project//mlir:Support",
],
)