Add some iree-tf-opt pass registrations. (#6235)
* There are a lot of problems with our TF reproducers. This at least gets the passes in place for ~the first half of it.
diff --git a/integrations/tensorflow/iree_tf_compiler/iree-tf-opt-main.cpp b/integrations/tensorflow/iree_tf_compiler/iree-tf-opt-main.cpp
index 982b5ce..220bbb7 100644
--- a/integrations/tensorflow/iree_tf_compiler/iree-tf-opt-main.cpp
+++ b/integrations/tensorflow/iree_tf_compiler/iree-tf-opt-main.cpp
@@ -21,10 +21,12 @@
#include "iree_tf_compiler/dialect/tf_strings/ir/dialect.h"
#include "iree_tf_compiler/dialect/tf_tensorlist/ir/tf_tensorlist_dialect.h"
#include "llvm/Support/InitLLVM.h"
+#include "mlir/Dialect/Shape/Transforms/Passes.h"
#include "mlir/IR/Dialect.h"
#include "mlir/Support/MlirOptMain.h"
#include "mlir/Transforms/Passes.h"
#include "tensorflow/compiler/mlir/tensorflow/dialect_registration.h"
+#include "tensorflow/compiler/mlir/tensorflow/transforms/passes.h"
int main(int argc, char **argv) {
llvm::InitLLVM y(argc, argv);
@@ -49,6 +51,19 @@
mlir::registerCanonicalizerPass();
mlir::registerCSEPass();
mlir::registerInlinerPass();
+ mlir::registerRemoveShapeConstraintsPass();
+ mlir::registerSymbolDCEPass();
+
+ // Select TF passes.
+ mlir::registerExecutorGraphPruningPassPass();
+ mlir::registerTensorFlowShapeInferencePassPass();
+ mlir::registerTensorFlowOptimizePassPass();
+ mlir::TFDevice::registerDecomposeResourceOpsPassPass();
+
+ // Old style static registration based TF passes.
+ mlir::TF::CreateDeviceIndexSelectorPass();
+ mlir::TF::CreateGuaranteeAllFuncsOneUsePass();
+ mlir::TF::CreateTFFunctionalControlFlowToCFG();
if (failed(MlirOptMain(argc, argv, "IREE-TF modular optimizer driver\n",
registry,