Integrate LLVM at llvm/llvm-project@ce8022faa365

Updates LLVM usage to match
[ce8022faa365](https://github.com/llvm/llvm-project/commit/ce8022faa365)

PiperOrigin-RevId: 425767473
Change-Id: Iceb30636d15c8d9367c1a544b91c82ec2cc460c4
diff --git a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_copy_removal.cc b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_copy_removal.cc
index 4010a3f..8202474 100644
--- a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_copy_removal.cc
+++ b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_copy_removal.cc
@@ -23,7 +23,7 @@
 #include "tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.h.inc"
 
 // -------------------------------------------------------------------------- //
-// Remove redundant linalg.copy operations
+// Remove redundant memref.copy operations
 // -------------------------------------------------------------------------- //
 struct LinalgTrivialCopyRemovalPass
     : public LinalgTrivialCopyRemovalBase<LinalgTrivialCopyRemovalPass> {
@@ -31,7 +31,7 @@
     mlir::FuncOp function = getFunction();
 
     mlir::SmallVector<mlir::Operation*> to_erase;
-    function.walk([&to_erase](mlir::linalg::CopyOp copy) {
+    function.walk([&to_erase](mlir::memref::CopyOp copy) {
       // Only match precise alloc/copy/dealloc triples.
       auto alloc = llvm::dyn_cast<mlir::memref::AllocOp>(copy->getPrevNode());
       auto dealloc =
diff --git a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.h b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.h
index 6609945..ce4747e 100644
--- a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.h
+++ b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.h
@@ -32,7 +32,7 @@
 // Pass for trivial buffer forwarding for the linalg.generic operations.
 std::unique_ptr<mlir::FunctionPass> CreateLinalgTrivialBufferForwardingPass();
 
-// Pass for trivial copy removal of linalg.copy operations.
+// Pass for trivial copy removal of memref.copy operations.
 std::unique_ptr<mlir::FunctionPass> CreateLinalgTrivialCopyRemovalPass();
 
 // Pass to optimize padding in tiled loops by peeling the final loop iteration.
diff --git a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.td b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.td
index f62a650..c05bcb0 100644
--- a/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.td
+++ b/tensorflow/compiler/mlir/tfrt/jit/transforms/tf_jitrt_passes.td
@@ -39,13 +39,13 @@
 
 def LinalgTrivialCopyRemoval
     : FunctionPass<"tf-jitrt-linalg-trivial-copy-removal"> {
-  let summary = "Trivial removal of linalg.copy operations";
+  let summary = "Trivial removal of memref.copy operations";
   let constructor = "tensorflow::CreateLinalgTrivialCopyRemovalPass()";
   let description = [{
     A simple pass that replaces patterns of the form
 
     %1 = memref.alloc() : memref<1x1xf32>
-    linalg.copy(%0, %1) : memref<1x1xf32>, memref<1x1xf32>
+    memref.copy(%0, %1) : memref<1x1xf32>, memref<1x1xf32>
     memref.dealloc %0 : memref<1x1xf32>
 
     by replacing uses of %1 with %0 and dropping the copy.
diff --git a/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_peel_tiled_loops.mlir b/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_peel_tiled_loops.mlir
index cf374c3..4aaacb1 100644
--- a/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_peel_tiled_loops.mlir
+++ b/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_peel_tiled_loops.mlir
@@ -22,7 +22,7 @@
         : memref<?xf32, #map1>, vector<8xf32>
     %5 = math.tanh %4 : vector<8xf32>
     vector.transfer_write %5, %3[%c0] : vector<8xf32>, memref<?xf32, #map1>
-    linalg.copy(%3, %3) : memref<?xf32, #map1>, memref<?xf32, #map1>
+    memref.copy %3, %3 : memref<?xf32, #map1> to memref<?xf32, #map1>
     linalg.yield
   }
   return %0 : memref<102401xf32>
diff --git a/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_pipeline.mlir b/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_pipeline.mlir
index 579ceac..e1a3b50 100644
--- a/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_pipeline.mlir
+++ b/tensorflow/compiler/mlir/tfrt/tests/jit/tf_jitrt_pipeline.mlir
@@ -355,7 +355,7 @@
   // CHECK:      %[[ALLOC:.*]] = memref.alloc() : memref<1xi32>
   // CHECK:      %[[SUBVIEW:.*]] = memref.subview %arg0[0] [1] [1]
   // CHECK-SAME:                 : memref<3xi32> to memref<1xi32>
-  // CHECK:      linalg.copy(%[[SUBVIEW]], %[[ALLOC]])
+  // CHECK:      memref.copy %[[SUBVIEW]], %[[ALLOC]]
   // CHECK:      %[[RET:.*]] = memref.collapse_shape %[[ALLOC]]
   // CHECK:      return %[[RET]]
   %0 = "tf.StridedSlice"(%arg0, %cst_1, %cst_0, %cst_0)
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/bufferize_tiled_loop.cc b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/bufferize_tiled_loop.cc
index 405dbd4..2992ffe 100644
--- a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/bufferize_tiled_loop.cc
+++ b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/bufferize_tiled_loop.cc
@@ -145,7 +145,7 @@
           op.getLoc(), destMemRef, op.getMixedOffsets(), op.getMixedSizes(),
           op.getMixedStrides());
     }
-    rewriter.create<linalg::CopyOp>(op.getLoc(), sourceMemRef, subview);
+    rewriter.create<memref::CopyOp>(op.getLoc(), sourceMemRef, subview);
     rewriter.replaceOp(op, destMemRef);
     return success();
   }
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/vectorization_pass.cc b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/vectorization_pass.cc
index 3cb7ab9..0779e4a 100644
--- a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/vectorization_pass.cc
+++ b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/vectorization_pass.cc
@@ -266,8 +266,8 @@
     for (auto &alias : baa.resolve(op.getResult())) {
       for (auto user : alias.getUsers()) {
         if (!(isa<ViewLikeOpInterface>(user) ||
-              (isa<linalg::CopyOp>(user) &&
-               alias == cast<linalg::CopyOp>(user).output()) ||
+              (isa<memref::CopyOp>(user) &&
+               alias == cast<memref::CopyOp>(user).target()) ||
               (isa<linalg::FillOp>(user) &&
                alias == cast<linalg::FillOp>(user).output()))) {
           return;
diff --git a/third_party/llvm/workspace.bzl b/third_party/llvm/workspace.bzl
index 0867499..c133bbe 100644
--- a/third_party/llvm/workspace.bzl
+++ b/third_party/llvm/workspace.bzl
@@ -4,8 +4,8 @@
 
 def repo(name):
     """Imports LLVM."""
-    LLVM_COMMIT = "87387c403b47ad052249bb7e7068123067d1b6e9"
-    LLVM_SHA256 = "385ef43dc54406548595c0a9aec3224c161c5ceb18bb9e76697e04e0e91c623e"
+    LLVM_COMMIT = "ce8022faa365e0a48c2d77085d67bd9800bedb0a"
+    LLVM_SHA256 = "585467a147428bb5315b005d73eadd6a6bc9f74566e2b773d6f7dd588996c086"
 
     tf_http_archive(
         name = name,