Integrate LLVM at llvm/llvm-project@5cb14dc5a3a6

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

PiperOrigin-RevId: 452042666
diff --git a/tensorflow/compiler/mlir/hlo/lib/Dialect/gml_st/transforms/bufferize_tiled_loop.cc b/tensorflow/compiler/mlir/hlo/lib/Dialect/gml_st/transforms/bufferize_tiled_loop.cc
index 2215f39..bbd56ad 100644
--- a/tensorflow/compiler/mlir/hlo/lib/Dialect/gml_st/transforms/bufferize_tiled_loop.cc
+++ b/tensorflow/compiler/mlir/hlo/lib/Dialect/gml_st/transforms/bufferize_tiled_loop.cc
@@ -377,7 +377,7 @@
         mlir::bufferization::getPartialBufferizationOptions();
     // TODO(springerm): Add dialects to this filter as more and more dialects
     // will be migrated to BufferizableOpInterface-based bufferization.
-    options.allowDialectInFilter<shape::ShapeDialect>();
+    options.opFilter.allowDialect<shape::ShapeDialect>();
     if (failed(mlir::bufferization::bufferizeOp(getOperation(), options))) {
       signalPassFailure();
       return;
diff --git a/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_lhlo.cc b/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_lhlo.cc
index 2a1ad18..27636ef 100644
--- a/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_lhlo.cc
+++ b/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_lhlo.cc
@@ -432,7 +432,7 @@
         bufferization::getPartialBufferizationOptions();
     // TODO(springerm): Add dialects to this filter as more and more dialects
     // will be migrated to BufferizableOpInterface-based bufferization.
-    options.allowDialectInFilter<shape::ShapeDialect>();
+    options.opFilter.allowDialect<shape::ShapeDialect>();
     return bufferization::bufferizeOp(getOperation(), options);
   }
 
diff --git a/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_memref.cc b/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_memref.cc
index d353bdd..0b698af 100644
--- a/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_memref.cc
+++ b/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/hlo_legalize_to_memref.cc
@@ -316,7 +316,7 @@
   void runOnOperation() override {
     bufferization::BufferizationOptions options =
         bufferization::getPartialBufferizationOptions();
-    options.allowDialectInFilter<mhlo::MhloDialect>();
+    options.opFilter.allowDialect<mhlo::MhloDialect>();
     if (failed(bufferizeOp(getOperation(), options))) signalPassFailure();
   }
 };
diff --git a/tensorflow/compiler/mlir/hlo/lib/Transforms/bufferize_pass.cc b/tensorflow/compiler/mlir/hlo/lib/Transforms/bufferize_pass.cc
index e888187..b7f2a51 100644
--- a/tensorflow/compiler/mlir/hlo/lib/Transforms/bufferize_pass.cc
+++ b/tensorflow/compiler/mlir/hlo/lib/Transforms/bufferize_pass.cc
@@ -143,12 +143,12 @@
         bufferization::getPartialBufferizationOptions();
     // TODO(springerm): Add dialects to this filter as more and more dialects
     // will be migrated to BufferizableOpInterface-based bufferization.
-    options.allowDialectInFilter<bufferization::BufferizationDialect,
-                                 linalg::LinalgDialect, mhlo::MhloDialect,
-                                 shape::ShapeDialect, tensor::TensorDialect,
-                                 vector::VectorDialect>();
+    options.opFilter.allowDialect<bufferization::BufferizationDialect,
+                                  linalg::LinalgDialect, mhlo::MhloDialect,
+                                  shape::ShapeDialect, tensor::TensorDialect,
+                                  vector::VectorDialect>();
     // Ops inside TiledLoopOps have special handling.
-    options.denyOperationInFilter([](Operation* op) {
+    options.opFilter.denyOperation([](Operation* op) {
       return mlir::isa<gml_st::LoopOp>(op->getParentOp());
     });
 
@@ -289,7 +289,7 @@
     options.bufferAlignment = alignment_;
     // TODO(springerm): Add dialects to this filter as more and more dialects
     // will be migrated to BufferizableOpInterface-based bufferization.
-    options.allowDialectInFilter<
+    options.opFilter.allowDialect<
         arith::ArithmeticDialect, bufferization::BufferizationDialect,
         linalg::LinalgDialect, func::FuncDialect, shape::ShapeDialect,
         tensor::TensorDialect, vector::VectorDialect>();
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/kernel_creator.cc b/tensorflow/compiler/mlir/tools/kernel_gen/kernel_creator.cc
index 6e3e143..3ad4374 100644
--- a/tensorflow/compiler/mlir/tools/kernel_gen/kernel_creator.cc
+++ b/tensorflow/compiler/mlir/tools/kernel_gen/kernel_creator.cc
@@ -273,8 +273,7 @@
 
   if (!cpu_codegen) {
     // Greedily map the remaining loop to GPU hardware dimensions.
-    pm.addNestedPass<FuncOp>(
-        mlir::kernel_gen::transforms::CreateMapParallelLoopsPass());
+    pm.addNestedPass<FuncOp>(mlir::createGpuMapParallelLoopsPass());
   }
 
   // Expand memref_reshape to its ranked form so that we can propagate
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/BUILD b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/BUILD
index 36552fb..8fa90e4 100644
--- a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/BUILD
+++ b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/BUILD
@@ -99,7 +99,6 @@
     name = "gpu_passes",
     srcs = [
         "gpu_kernel_to_blob_pass.cc",
-        "map_parallel_loops_to_gpu.cc",
         "tf_kernel_to_llvm_pass.cc",
     ],
     hdrs = ["passes.h"],
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/map_parallel_loops_to_gpu.cc b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/map_parallel_loops_to_gpu.cc
deleted file mode 100644
index c15ac60..0000000
--- a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/map_parallel_loops_to_gpu.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2020 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#include "mlir/Dialect/Func/IR/FuncOps.h"  // from @llvm-project
-#include "mlir/Dialect/GPU/ParallelLoopMapper.h"  // from @llvm-project
-#include "tensorflow/compiler/mlir/tools/kernel_gen/transforms/passes.h"
-
-namespace mlir {
-namespace kernel_gen {
-namespace transforms {
-namespace {
-
-#define GEN_PASS_CLASSES
-#include "tensorflow/compiler/mlir/tools/kernel_gen/transforms/kernel_gen_passes.h.inc"
-
-struct MapParallelLoopsPass : MapParallelLoopsPassBase<MapParallelLoopsPass> {
-  void runOnOperation() override {
-    mlir::greedilyMapParallelSCFToGPU(getOperation().getBody());
-  }
-};
-
-}  // namespace
-
-std::unique_ptr<mlir::OperationPass<mlir::func::FuncOp>>
-CreateMapParallelLoopsPass() {
-  return std::make_unique<MapParallelLoopsPass>();
-}
-
-}  // namespace transforms
-}  // namespace kernel_gen
-}  // namespace mlir
diff --git a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/passes.td b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/passes.td
index 6006697..2cdf045 100644
--- a/tensorflow/compiler/mlir/tools/kernel_gen/transforms/passes.td
+++ b/tensorflow/compiler/mlir/tools/kernel_gen/transforms/passes.td
@@ -117,15 +117,6 @@
   let dependentDialects = ["LLVM::LLVMDialect"];
 }
 
-def MapParallelLoopsPass
-    : Pass<"map-parallel-loops-to-gpu", "mlir::func::FuncOp"> {
-  let summary = "Greedily maps loops to GPU hardware dimensions.";
-  let constructor = "transforms::CreateMapParallelLoopsPass()";
-  let description = [{
-    Greedily maps loops to GPU hardware dimensions.
-  }];
-}
-
 def FuseInnerParallelLoopsPass
     : Pass<"fuse-inner-parallel-loops", "mlir::func::FuncOp"> {
   let summary = "Limited pass to forward stores to loads.";
diff --git a/third_party/llvm/workspace.bzl b/third_party/llvm/workspace.bzl
index bec25a9..922f472 100644
--- a/third_party/llvm/workspace.bzl
+++ b/third_party/llvm/workspace.bzl
@@ -4,8 +4,8 @@
 
 def repo(name):
     """Imports LLVM."""
-    LLVM_COMMIT = "9191078707390c32b691ff84633ab9450b380ea5"
-    LLVM_SHA256 = "a679b48456e8477eea5cbe4efb18f14ecfe21ddf011988c81150d59bfd89a8e4"
+    LLVM_COMMIT = "5cb14dc5a3a6bcd0f6ca1e56a36ab0d7c4b0b202"
+    LLVM_SHA256 = "29cf8cbc0ef4818e7d80c67490481303149e5d0d875202934c11f6eb10876ea8"
 
     tf_http_archive(
         name = name,