From 113c7f0acea7b7492ef20cb40d6d1583489060ea Mon Sep 17 00:00:00 2001 From: Andy Ly Date: Fri, 6 Sep 2019 13:21:33 -0700 Subject: [PATCH] Separate out passes and ops from tensorflow/compiler/mlir/tensorflow:tensorflow target (NFC). This alleviates cyclic dependencies between passes and utils that depend on the tensorflow target for ops or types. Also SwitchFoldPass is added to the passes target instead of its own target. PiperOrigin-RevId: 267659747 --- tensorflow/compiler/mlir/BUILD | 2 +- tensorflow/compiler/mlir/lite/BUILD | 2 +- tensorflow/compiler/mlir/tensorflow/BUILD | 89 ++++++++++++----------- 3 files changed, 49 insertions(+), 44 deletions(-) diff --git a/tensorflow/compiler/mlir/BUILD b/tensorflow/compiler/mlir/BUILD index dbe0d66b0c8..64e2282b09b 100644 --- a/tensorflow/compiler/mlir/BUILD +++ b/tensorflow/compiler/mlir/BUILD @@ -45,7 +45,7 @@ cc_library( "//tensorflow/compiler/mlir/lite:tensorflow_lite_quantize", "//tensorflow/compiler/mlir/tensorflow", "//tensorflow/compiler/mlir/tensorflow:tensorflow_dialect_registration", - "//tensorflow/compiler/mlir/tensorflow:tensorflow_fold_switch", + "//tensorflow/compiler/mlir/tensorflow:tensorflow_passes", "//tensorflow/compiler/mlir/tensorflow:tf_dialect_passes", "//tensorflow/compiler/mlir/xla:hlo", "//tensorflow/compiler/mlir/xla:lhlo", diff --git a/tensorflow/compiler/mlir/lite/BUILD b/tensorflow/compiler/mlir/lite/BUILD index 225fd393c01..d43922bd143 100644 --- a/tensorflow/compiler/mlir/lite/BUILD +++ b/tensorflow/compiler/mlir/lite/BUILD @@ -523,7 +523,7 @@ cc_library( ":tensorflow_lite_quantize", "//tensorflow/compiler/mlir/tensorflow", "//tensorflow/compiler/mlir/tensorflow:error_util", - "//tensorflow/compiler/mlir/tensorflow:tensorflow_fold_switch", + "//tensorflow/compiler/mlir/tensorflow:tensorflow_passes", "//tensorflow/compiler/mlir/tensorflow:tf_dialect_lib", "//tensorflow/compiler/mlir/tensorflow:tf_dialect_passes", "//tensorflow/compiler/mlir/tensorflow:translate_lib", diff --git a/tensorflow/compiler/mlir/tensorflow/BUILD b/tensorflow/compiler/mlir/tensorflow/BUILD index 1a3535a5946..32bc99d4090 100644 --- a/tensorflow/compiler/mlir/tensorflow/BUILD +++ b/tensorflow/compiler/mlir/tensorflow/BUILD @@ -123,21 +123,6 @@ cc_library( "ir/tf_ops.cc.inc", "ir/tf_ops.h.inc", "ir/tf_types.cc", - "transforms/bridge.cc", - "transforms/bridge_pass.cc", - "transforms/cluster_formation.cc", - "transforms/cluster_outlining.cc", - "transforms/executor_island_coarsening.cc", - "transforms/functional_control_flow_to_cfg.cc", - "transforms/generated_canonicalize.inc", - "transforms/generated_optimize.inc", - "transforms/graph_pruning.cc", - "transforms/optimize.cc", - "transforms/raise_control_flow.cc", - "transforms/tpu_cluster_formation.cc", - "transforms/tpu_rewrite_pass.cc", - "translate/control_to_executor_dialect.cc", - "translate/executor_to_control_dialect.cc", ], hdrs = [ "ir/control_flow_ops.h", @@ -157,7 +142,6 @@ cc_library( ":tensorflow_device_ops_inc_gen", ":tensorflow_executor_inc_gen", ":tensorflow_ops_inc_gen", - ":tensorflow_optimize_inc_gen", "//tensorflow/compiler/mlir/lite:validators", "//tensorflow/core:lib", "@llvm//:support", @@ -175,12 +159,58 @@ cc_library( alwayslink = 1, ) +cc_library( + name = "tensorflow_passes", + srcs = [ + "transforms/bridge.cc", + "transforms/bridge_pass.cc", + "transforms/cluster_formation.cc", + "transforms/cluster_outlining.cc", + "transforms/executor_island_coarsening.cc", + "transforms/fold_switch.cc", + "transforms/functional_control_flow_to_cfg.cc", + "transforms/generated_canonicalize.inc", + "transforms/generated_optimize.inc", + "transforms/graph_pruning.cc", + "transforms/optimize.cc", + "transforms/raise_control_flow.cc", + "transforms/tpu_cluster_formation.cc", + "transforms/tpu_rewrite_pass.cc", + "translate/control_to_executor_dialect.cc", + "translate/executor_to_control_dialect.cc", + ], + hdrs = [ + "transforms/bridge.h", + "transforms/passes.h", + ], + includes = ["include"], + deps = [ + ":error_util", + ":tensorflow", + ":tensorflow_optimize_inc_gen", + "//tensorflow/compiler/mlir/lite:validators", + "//tensorflow/core:lib", + "//tensorflow/core/platform:logging", + "@llvm//:support", + "@local_config_mlir//:Analysis", + "@local_config_mlir//:IR", + "@local_config_mlir//:Pass", + "@local_config_mlir//:StandardOps", + "@local_config_mlir//:Support", + "@local_config_mlir//:TransformUtils", + "@local_config_mlir//:Transforms", + ], + # TODO(jpienaar): Merge in the dialect registration. + alwayslink = 1, +) + # Library with TensorFlow dialect static initialization. cc_library( name = "tensorflow_dialect_registration", srcs = ["ir/dialect_registration.cc"], deps = [ ":tensorflow", + ":tensorflow_passes", "@local_config_mlir//:IR", ], alwayslink = 1, @@ -204,6 +234,7 @@ cc_library( ":mangling_util", ":mlir_roundtrip_flags", ":tensorflow", + ":tensorflow_passes", "//tensorflow/cc/saved_model:loader_lite", "//tensorflow/compiler/jit:shape_inference_helpers", "//tensorflow/compiler/xla:status_macros", @@ -638,36 +669,10 @@ gentbl( ], ) -cc_library( - name = "tensorflow_fold_switch", - srcs = [ - "transforms/fold_switch.cc", - ], - hdrs = [ - "transforms/passes.h", - ], - copts = ["-std=c++14"], - deps = [ - ":tensorflow", - "//tensorflow/core:framework", - "//tensorflow/core:lib", - "@com_google_absl//absl/memory", - "@llvm//:support", - "@local_config_mlir//:Analysis", - "@local_config_mlir//:IR", - "@local_config_mlir//:Pass", - "@local_config_mlir//:QuantOps", - "@local_config_mlir//:StandardOps", - "@local_config_mlir//:Support", - ], - alwayslink = 1, -) - cc_library( name = "compile_mlir_util", srcs = ["utils/compile_mlir_util.cc"], hdrs = ["utils/compile_mlir_util.h"], - copts = ["-std=c++14"], deps = [ ":convert_type", ":error_util",