Integrate llvm/llvm-project@ca23b7ca476fb (#11429)

* Reset third_party/llvm-project:
ca23b7ca476fb66771d1c6d02c6837938fde6c7e (2022-12-02 19:05:43 +0000):
[AsmPrinter] .addrsig_sym: remove isTransitiveUsedByMetadataOnly
* Updated to tensorflow/tensorflow@a4ed969
* Updated to tensorflow/mlir-hlo@9e3d164
* Called `expand-strided-metadata` pass for LLVMGPU

Co-authored-by: Thomas Raoux <thomasraoux@google.com>
diff --git a/compiler/src/iree/compiler/Codegen/Dialect/test/lowering_config_attr.mlir b/compiler/src/iree/compiler/Codegen/Dialect/test/lowering_config_attr.mlir
index ff9a552..29e2315 100644
--- a/compiler/src/iree/compiler/Codegen/Dialect/test/lowering_config_attr.mlir
+++ b/compiler/src/iree/compiler/Codegen/Dialect/test/lowering_config_attr.mlir
@@ -39,7 +39,10 @@
     return
   }
 }
-// CHECK: #compilation = #iree_codegen.compilation_info<lowering_config = <tile_sizes = []>, translation_info = <CPUDefault>>
+// CHECK: #config = #iree_codegen.lowering_config<tile_sizes = []>
+// CHECK: #translation = #iree_codegen.translation_info<CPUDefault>
+// CHECK: #compilation = #iree_codegen.compilation_info<lowering_config = #config, translation_info = #translation>
+
 
 // -----
 
@@ -53,4 +56,7 @@
     return
   }
 }
-// CHECK: #compilation = #iree_codegen.compilation_info<lowering_config = <tile_sizes = []>, translation_info = <CPUDefault>, workgroup_size = [16, 4, 1], subgroup_size = 32>
+// CHECK: #config = #iree_codegen.lowering_config<tile_sizes = []>
+// CHECK: #translation = #iree_codegen.translation_info<CPUDefault>
+// CHECK: #compilation = #iree_codegen.compilation_info<lowering_config = #config, translation_info = #translation, workgroup_size = [16, 4, 1], subgroup_size = 32>
+
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp b/compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp
index 5294c62..b99c356 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp
@@ -394,6 +394,7 @@
 
   pm.addNestedPass<func::FuncOp>(arith::createArithExpandOpsPass());
   pm.addNestedPass<func::FuncOp>(memref::createExpandOpsPass());
+  pm.addPass(memref::createExpandStridedMetadataPass());
   pm.addPass(createLowerAffinePass());
 
   // Strip out the debug info for the kernel as CUDA driver doesn't diggest PTX
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/workgroup_specialization_pipeline_test.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/workgroup_specialization_pipeline_test.mlir
index aece8ac..15250eb 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/workgroup_specialization_pipeline_test.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/workgroup_specialization_pipeline_test.mlir
@@ -96,10 +96,10 @@
 //      CHECK:   %[[ARR:.*]] = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) offset(%[[c0]]) alignment(64) : memref<102401xf32>
 //      CHECK:   %[[ARR2:.*]] = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) offset(%[[c0]]) alignment(64) : memref<102401xf32>
 //      CHECK:   %[[BLKX:.*]] = hal.interface.workgroup.id[0] : index
-//      CHECK:   %[[BLKX2:.*]] = affine.min #map2()[%[[BLKX]]]
+//      CHECK:   %[[BLKX2:.*]] = affine.min #{{.+}}()[%[[BLKX]]]
 //      CHECK:   %[[CMP:.*]] = arith.cmpi eq, %[[BLKX2]], %[[c256]] : index
 //      CHECK:   scf.if %[[CMP]]
 //      CHECK:   %[[TIDX:.*]] = gpu.thread_id  x
-//      CHECK:   %[[AFF:.*]] = affine.apply #map3(%[[TIDX]])[%[[BLKX]]]
+//      CHECK:   %[[AFF:.*]] = affine.apply #{{.+}}(%[[TIDX]])[%[[BLKX]]]
 //      CHECK:   vector.transfer_read %[[ARR]][%[[AFF]]], %[[cst]] {in_bounds = [true]} : memref<102401xf32>, vector<4xf32>
-//      CHECK:   vector.transfer_read %[[ARR2]][%[[AFF]]], %[[cst]] {in_bounds = [true]} : memref<102401xf32>, vector<4xf32>
\ No newline at end of file
+//      CHECK:   vector.transfer_read %[[ARR2]][%[[AFF]]], %[[cst]] {in_bounds = [true]} : memref<102401xf32>, vector<4xf32>
diff --git a/compiler/src/iree/compiler/Tools/BUILD b/compiler/src/iree/compiler/Tools/BUILD
index ea46a1c..c1268a7 100644
--- a/compiler/src/iree/compiler/Tools/BUILD
+++ b/compiler/src/iree/compiler/Tools/BUILD
@@ -104,7 +104,6 @@
         "@llvm-project//mlir:LinalgDialect",
         "@llvm-project//mlir:LinalgPassIncGen",
         "@llvm-project//mlir:LinalgToLLVM",
-        "@llvm-project//mlir:LinalgToSPIRV",
         "@llvm-project//mlir:LinalgTransforms",
         "@llvm-project//mlir:MLProgramDialect",
         "@llvm-project//mlir:MathDialect",
diff --git a/compiler/src/iree/compiler/Tools/CMakeLists.txt b/compiler/src/iree/compiler/Tools/CMakeLists.txt
index 6a2960a..66091ec 100644
--- a/compiler/src/iree/compiler/Tools/CMakeLists.txt
+++ b/compiler/src/iree/compiler/Tools/CMakeLists.txt
@@ -133,7 +133,6 @@
     MLIRLLVMDialect
     MLIRLinalgDialect
     MLIRLinalgToLLVM
-    MLIRLinalgToSPIRV
     MLIRLinalgTransforms
     MLIRMLProgramDialect
     MLIRQuantDialect
diff --git a/compiler/src/iree/compiler/Tools/init_mlir_passes.h b/compiler/src/iree/compiler/Tools/init_mlir_passes.h
index 8c36168..fc9e784 100644
--- a/compiler/src/iree/compiler/Tools/init_mlir_passes.h
+++ b/compiler/src/iree/compiler/Tools/init_mlir_passes.h
@@ -79,7 +79,6 @@
   registerConvertGPUToSPIRVPass();
   registerConvertControlFlowToSPIRVPass();
   registerConvertFuncToSPIRVPass();
-  registerConvertLinalgToSPIRVPass();
 }
 
 }  // namespace mlir
diff --git a/integrations/tensorflow/WORKSPACE b/integrations/tensorflow/WORKSPACE
index 5e9d4dd..e1b8fc6 100644
--- a/integrations/tensorflow/WORKSPACE
+++ b/integrations/tensorflow/WORKSPACE
@@ -7,7 +7,7 @@
 
 load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
 
-TENSORFLOW_COMMIT = "cfe950a3f9b48555816aeece894ed6a7a2271749"
+TENSORFLOW_COMMIT = "a4ed969207533e0e82cdda414d1eb78cb1072f6d"
 
 git_repository(
     name = "org_tensorflow",
diff --git a/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp b/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
index 7214789..67b54fd 100644
--- a/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
+++ b/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
@@ -191,7 +191,7 @@
             loopNest.loops.back().getBody()->getTerminator())) {
       rewriter.replaceOpWithNewOp<scf::YieldOp>(yieldOp, updatedOutput);
     }
-    inputOp.getResults()[0].replaceAllUsesWith(loopNest.getResults()[0]);
+    inputOp.getResults()[0].replaceAllUsesWith(loopNest.results[0]);
     return success();
   }
 };
@@ -338,7 +338,7 @@
             loopNest.loops.back().getBody()->getTerminator())) {
       rewriter.replaceOpWithNewOp<scf::YieldOp>(yieldOp, updatedOutput);
     }
-    outputOp.getResults()[0].replaceAllUsesWith(loopNest.getResults()[0]);
+    outputOp.getResults()[0].replaceAllUsesWith(loopNest.results[0]);
     return success();
   }
 };
diff --git a/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp b/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
index e8ff056..de4bff6 100644
--- a/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
+++ b/integrations/tensorflow/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
@@ -90,7 +90,7 @@
             createMatchingSubsetInsertOp(b, loc, sliceOp, sliceOp, iterArgs[0]);
         return scf::ValueVector({yieldValue});
       });
-  return loopNest.getResults();
+  return loopNest.results;
 }
 
 namespace {
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
index 7214789..67b54fd 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Passes/TileAndDecomposeWinogradPass.cpp
@@ -191,7 +191,7 @@
             loopNest.loops.back().getBody()->getTerminator())) {
       rewriter.replaceOpWithNewOp<scf::YieldOp>(yieldOp, updatedOutput);
     }
-    inputOp.getResults()[0].replaceAllUsesWith(loopNest.getResults()[0]);
+    inputOp.getResults()[0].replaceAllUsesWith(loopNest.results[0]);
     return success();
   }
 };
@@ -338,7 +338,7 @@
             loopNest.loops.back().getBody()->getTerminator())) {
       rewriter.replaceOpWithNewOp<scf::YieldOp>(yieldOp, updatedOutput);
     }
-    outputOp.getResults()[0].replaceAllUsesWith(loopNest.getResults()[0]);
+    outputOp.getResults()[0].replaceAllUsesWith(loopNest.results[0]);
     return success();
   }
 };
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
index e8ff056..de4bff6 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Tiling.cpp
@@ -90,7 +90,7 @@
             createMatchingSubsetInsertOp(b, loc, sliceOp, sliceOp, iterArgs[0]);
         return scf::ValueVector({yieldValue});
       });
-  return loopNest.getResults();
+  return loopNest.results;
 }
 
 namespace {
diff --git a/llvm-external-projects/iree-dialects/test/Dialect/iree_linalg_ext/tiling.mlir b/llvm-external-projects/iree-dialects/test/Dialect/iree_linalg_ext/tiling.mlir
index 44cab77..d89d4ed 100644
--- a/llvm-external-projects/iree-dialects/test/Dialect/iree_linalg_ext/tiling.mlir
+++ b/llvm-external-projects/iree-dialects/test/Dialect/iree_linalg_ext/tiling.mlir
@@ -1322,8 +1322,6 @@
     ins(%arg0 : memref<1x10x10x1280xf32>) outs(%arg1 : memref<8x8x1x2x2x1280xf32>)
   return
 }
-// CHECK-DAG:  #[[MAP:.+]] = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
-// CHECK-DAG:  #[[MAP1:.+]] = affine_map<(d0, d1, d2, d3, d4, d5) -> (d0, d1, d2, d3, d4, d5)>
 // CHECK-DAG:  #[[MAP2:.+]] = affine_map<(d0)[s0, s1] -> (1, -d0 + s1)>
 // CHECK-DAG:  #[[MAP3:.+]] = affine_map<(d0)[s0, s1] -> (32, -d0 + s1)>
 // CHECK:      func.func @winograd_input_transform_memref(%[[ARG0:[a-zA-Z0-9_]+]]: memref<1x10x10x1280xf32>,
@@ -1398,8 +1396,6 @@
    ins(%arg0 : memref<8x8x1x2x2x32xf32>) outs(%arg1 : memref<1x12x12x32xf32>)
   return
 }
-// CHECK-DAG:  #[[MAP:.+]] = affine_map<(d0, d1, d2, d3, d4, d5) -> (d0, d1, d2, d3, d4, d5)>
-// CHECK-DAG:  #[[MAP1:.+]] = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
 // CHECK-DAG:  #[[MAP2:.+]] = affine_map<(d0)[s0, s1] -> (1, -d0 + s1)>
 // CHECK-DAG:  #[[MAP3:.+]] = affine_map<(d0)[s0, s1] -> (32, -d0 + s1)>
 // CHECK:      func.func @winograd_output_transform_memref(%[[ARG0:[a-zA-Z0-9_]+]]: memref<8x8x1x2x2x32xf32>,
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 3d22047..ca23b7c 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 3d2204760a89def9b6412e0737905d93babeb112
+Subproject commit ca23b7ca476fb66771d1c6d02c6837938fde6c7e
diff --git a/third_party/mlir-hlo b/third_party/mlir-hlo
index 8d929fc..9e3d164 160000
--- a/third_party/mlir-hlo
+++ b/third_party/mlir-hlo
@@ -1 +1 @@
-Subproject commit 8d929fcdd31e269371f00192958754c02f8bc7df
+Subproject commit 9e3d164c0e7f4bd4eee80ce95cef0941755d5a8e