diff --git a/compiler/src/iree/compiler/API2/Internal/BUILD b/compiler/src/iree/compiler/API2/Internal/BUILD
index 32eddec..e57188c 100644
--- a/compiler/src/iree/compiler/API2/Internal/BUILD
+++ b/compiler/src/iree/compiler/API2/Internal/BUILD
@@ -92,6 +92,7 @@
         "@llvm-project//lld:MachO",
         "@llvm-project//lld:Wasm",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
     ],
 )
 
diff --git a/compiler/src/iree/compiler/API2/Internal/CMakeLists.txt b/compiler/src/iree/compiler/API2/Internal/CMakeLists.txt
index 8c1a346..99c2c88 100644
--- a/compiler/src/iree/compiler/API2/Internal/CMakeLists.txt
+++ b/compiler/src/iree/compiler/API2/Internal/CMakeLists.txt
@@ -83,6 +83,7 @@
     "LLDToolEntryPoint.cpp"
   DEPS
     LLVMSupport
+    LLVMTargetParser
     iree::compiler::API2::Headers
     lldCOFF
     lldCommon
diff --git a/compiler/src/iree/compiler/API2/Internal/LLDToolEntryPoint.cpp b/compiler/src/iree/compiler/API2/Internal/LLDToolEntryPoint.cpp
index 4e5b645..f5dd5a4 100644
--- a/compiler/src/iree/compiler/API2/Internal/LLDToolEntryPoint.cpp
+++ b/compiler/src/iree/compiler/API2/Internal/LLDToolEntryPoint.cpp
@@ -19,7 +19,6 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringSwitch.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/CrashRecoveryContext.h"
@@ -28,6 +27,7 @@
 #include "llvm/Support/Path.h"
 #include "llvm/Support/PluginLoader.h"
 #include "llvm/Support/Process.h"
+#include "llvm/TargetParser/Triple.h"
 
 using namespace lld;
 using namespace llvm;
diff --git a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
index 9416cb1..90a8a95 100644
--- a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
+++ b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
@@ -25,10 +25,13 @@
 #include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h"
 #include "mlir/Support/LLVM.h"
 
+using mlir::bufferization::AliasingOpOperand;
+using mlir::bufferization::AliasingOpOperandList;
+using mlir::bufferization::AliasingOpResult;
 using mlir::bufferization::AnalysisState;
 using mlir::bufferization::BufferizableOpInterface;
-using mlir::bufferization::BufferizationAliasInfo;
 using mlir::bufferization::BufferizationOptions;
+using mlir::bufferization::BufferRelation;
 using mlir::bufferization::eliminateEmptyTensors;
 using mlir::bufferization::OneShotAnalysisState;
 using mlir::bufferization::OneShotBufferizationOptions;
@@ -264,11 +267,12 @@
   AnalysisState analysisState(options);
   SmallVector<Value> newOutputBuffers;
   for (OpResult opResult : op->getOpResults()) {
-    SmallVector<OpOperand *> aliasingOpOperands =
+    AliasingOpOperandList aliasingOpOperands =
         analysisState.getAliasingOpOperands(opResult);
-    assert(aliasingOpOperands.size() == 1 && "expected 1 OpOperand");
-    FailureOr<Value> resultBuffer =
-        getBuffer(rewriter, aliasingOpOperands.front()->get(), options);
+    assert(aliasingOpOperands.getNumAliases() == 1 && "expected 1 OpOperand");
+    FailureOr<Value> resultBuffer = getBuffer(
+        rewriter, aliasingOpOperands.getAliases().front().opOperand->get(),
+        options);
     if (failed(resultBuffer)) return failure();
     newOutputBuffers.push_back(*resultBuffer);
   }
@@ -321,7 +325,9 @@
                                const AnalysisState &state) const {
     // Operand is written to if it has an aliasing OpResult.
     auto bufferizableOp = cast<BufferizableOpInterface>(op);
-    return !bufferizableOp.getAliasingOpResults(opOperand, state).empty();
+    return !bufferizableOp.getAliasingOpResults(opOperand, state)
+                .getAliases()
+                .empty();
   }
 
   bufferization::AliasingOpOperandList getAliasingOpOperands(
@@ -329,7 +335,10 @@
     auto linalgExtOp = cast<IREE::LinalgExt::LinalgExtOp>(op);
 
     // The i-th OpResult may alias with the i-th "out" tensor.
-    return {linalgExtOp.getOutputOperand(opResult.getResultNumber())};
+    return {AliasingOpOperand(
+        linalgExtOp.getOutputOperand(opResult.getResultNumber()) /*result*/,
+        BufferRelation::Equivalent,
+        /*isDefinite=*/false)};
   }
 
   bufferization::AliasingOpResultList getAliasingOpResults(
@@ -337,7 +346,11 @@
     auto dspOp = cast<DestinationStyleOpInterface>(op);
 
     // The i-th "out" tensor may alias with the i-th OpResult.
-    if (dspOp.isDpsInit(&opOperand)) return {dspOp.getTiedOpResult(&opOperand)};
+    if (dspOp.isDpsInit(&opOperand)) {
+      return {AliasingOpResult(dspOp.getTiedOpResult(&opOperand) /*result*/,
+                               BufferRelation::Equivalent,
+                               /*isDefinite=*/false)};
+    }
     return {};
   }
 
@@ -366,11 +379,12 @@
 
   Value dest;
   AnalysisState analysisState(options);
-  SmallVector<OpOperand *> aliasingOpOperands =
+  AliasingOpOperandList aliasingOpOperands =
       analysisState.getAliasingOpOperands(op->getOpResult(0));
-  assert(aliasingOpOperands.size() == 1 && "expected 1 OpOperand");
-  FailureOr<Value> resultBuffer =
-      getBuffer(rewriter, aliasingOpOperands.front()->get(), options);
+  assert(aliasingOpOperands.getNumAliases() == 1 && "expected 1 OpOperand");
+  FailureOr<Value> resultBuffer = getBuffer(
+      rewriter, aliasingOpOperands.getAliases().front().opOperand->get(),
+      options);
   if (failed(resultBuffer)) return failure();
   dest = *resultBuffer;
   return std::make_pair(source, dest);
@@ -459,7 +473,10 @@
     auto dspOp = cast<DestinationStyleOpInterface>(op);
 
     // The i-th "out" tensor may alias with the i-th OpResult.
-    if (dspOp.isDpsInit(&opOperand)) return {dspOp.getTiedOpResult(&opOperand)};
+    if (dspOp.isDpsInit(&opOperand))
+      return {AliasingOpResult(dspOp.getTiedOpResult(&opOperand),
+                               BufferRelation::Equivalent,
+                               /*isDefinite=*/false)};
     return {};
   }
 
@@ -487,7 +504,7 @@
 /// Returns true if the value of a `storeOp` bufferizes to an equivalent
 /// DispatchTensorLoadOp result that bufferizes inplace.
 static bool isValueEquivalentToAnInplaceTensorLoadOp(
-    const BufferizationAliasInfo &aliasInfo,
+    const OneShotAnalysisState &aliasInfo,
     IREE::Flow::DispatchTensorStoreOp storeOp) {
   bool foundOp = false;
   aliasInfo.applyOnEquivalenceClass(storeOp.getValue(), [&](Value value) {
@@ -513,7 +530,7 @@
 ///   DispatchTensorStoreOp to the tensor::EmptyOp must have bufferized
 ///   in-place.
 LogicalResult storeTensorOpAnchoredEmptyTensorEliminationStep(
-    RewriterBase &rewriter, Operation *op, AnalysisState &state) {
+    RewriterBase &rewriter, Operation *op, OneShotAnalysisState &state) {
   return eliminateEmptyTensors(
       rewriter, op, state,
       /*anchorMatchFunc=*/
diff --git a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.h b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.h
index a3182ff..c34bcd7 100644
--- a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.h
+++ b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.h
@@ -19,7 +19,8 @@
 
 // Eliminate tensor.empty ops that are anchored on flow store ops.
 LogicalResult storeTensorOpAnchoredEmptyTensorEliminationStep(
-    RewriterBase &rewriter, Operation *op, bufferization::AnalysisState &state);
+    RewriterBase &rewriter, Operation *op,
+    bufferization::OneShotAnalysisState &state);
 
 }  // namespace iree_compiler
 }  // namespace mlir
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/BUILD b/compiler/src/iree/compiler/Codegen/LLVMCPU/BUILD
index a29a469..744c688 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/BUILD
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/BUILD
@@ -63,6 +63,7 @@
         "//runtime/src/iree/builtins/ukernel:exported_bits",
         "@llvm-project//llvm:BinaryFormat",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//mlir:AffineDialect",
         "@llvm-project//mlir:AffineToStandard",
         "@llvm-project//mlir:Analysis",
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/CMakeLists.txt b/compiler/src/iree/compiler/Codegen/LLVMCPU/CMakeLists.txt
index 85224a4..948f734 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/CMakeLists.txt
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/CMakeLists.txt
@@ -43,6 +43,7 @@
     IREELinalgTransformDialectPasses
     LLVMBinaryFormat
     LLVMSupport
+    LLVMTargetParser
     MLIRAffineDialect
     MLIRAffineToStandard
     MLIRAnalysis
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
index 0cbac1e..1c7aae3 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
@@ -12,9 +12,9 @@
 #include "iree/compiler/Dialect/HAL/IR/HALOps.h"
 #include "iree/compiler/Dialect/Util/IR/UtilDialect.h"
 #include "iree/compiler/Dialect/Util/IR/UtilOps.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/Support/Mutex.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/TargetParser/Triple.h"
 #include "mlir/Analysis/DataLayoutAnalysis.h"
 #include "mlir/Conversion/AffineToStandard/AffineToStandard.h"
 #include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
index 0e9d62d..7e186f7 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
@@ -11,8 +11,8 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/StringRef.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/Support/FormatVariadic.h"
+#include "llvm/TargetParser/Triple.h"
 #include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
 #include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h"
 #include "mlir/Dialect/Arith/IR/Arith.h"
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/reduction_pipeline.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/reduction_pipeline.mlir
index 56bb89e..7a31604 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/reduction_pipeline.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/reduction_pipeline.mlir
@@ -317,7 +317,6 @@
 //         CHECK:    arith.addf
 //         CHECK:    arith.addf
 //         CHECK:    vector.broadcast
-//         CHECK:    vector.broadcast
 //         CHECK:    arith.divf
 //         CHECK:    scf.for
 //         CHECK:      vector.transfer_read
diff --git a/compiler/src/iree/compiler/Codegen/Utils/BUILD b/compiler/src/iree/compiler/Codegen/Utils/BUILD
index 5dd02b9..b0a3934 100644
--- a/compiler/src/iree/compiler/Codegen/Utils/BUILD
+++ b/compiler/src/iree/compiler/Codegen/Utils/BUILD
@@ -38,6 +38,7 @@
         "//llvm-external-projects/iree-dialects:IREELinalgExtDialect",
         "//llvm-external-projects/iree-dialects:IREELinalgExtPasses",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//mlir:AffineDialect",
         "@llvm-project//mlir:ArithDialect",
         "@llvm-project//mlir:ArithUtils",
diff --git a/compiler/src/iree/compiler/Codegen/Utils/CMakeLists.txt b/compiler/src/iree/compiler/Codegen/Utils/CMakeLists.txt
index e11c0ef..97027f5 100644
--- a/compiler/src/iree/compiler/Codegen/Utils/CMakeLists.txt
+++ b/compiler/src/iree/compiler/Codegen/Utils/CMakeLists.txt
@@ -29,6 +29,7 @@
     IREELinalgExtDialect
     IREELinalgExtPasses
     LLVMSupport
+    LLVMTargetParser
     MLIRAffineDialect
     MLIRArithDialect
     MLIRArithUtils
diff --git a/compiler/src/iree/compiler/Codegen/Utils/Utils.h b/compiler/src/iree/compiler/Codegen/Utils/Utils.h
index 0e45fda..ca8f43f 100644
--- a/compiler/src/iree/compiler/Codegen/Utils/Utils.h
+++ b/compiler/src/iree/compiler/Codegen/Utils/Utils.h
@@ -10,7 +10,7 @@
 #include "iree/compiler/Codegen/Interfaces/PartitionableLoopsInterface.h"
 #include "iree/compiler/Dialect/HAL/IR/HALOps.h"
 #include "llvm/ADT/StringMap.h"
-#include "llvm/ADT/Triple.h"
+#include "llvm/TargetParser/Triple.h"
 #include "mlir/Dialect/Func/IR/FuncOps.h"
 #include "mlir/Dialect/Linalg/IR/Linalg.h"
 #include "mlir/Dialect/Linalg/Utils/Utils.h"
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/BUILD b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/BUILD
index a6c0057..ebf3702 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/BUILD
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/BUILD
@@ -57,6 +57,7 @@
         "@llvm-project//llvm:RISCVAsmParser",
         "@llvm-project//llvm:RISCVCodeGen",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//llvm:WebAssemblyAsmParser",
         "@llvm-project//llvm:WebAssemblyCodeGen",
         "@llvm-project//llvm:X86AsmParser",
@@ -117,8 +118,9 @@
     hdrs = ["LinkerTool.h"],
     deps = platform_trampoline_deps("LinkerTools", "compiler/src/iree/compiler/Dialect/HAL/Target/LLVM") + [
         "//compiler/src/iree/compiler/Utils",
-        "@llvm-project//llvm:Support",
         "@llvm-project//llvm:Core",
+        "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//mlir:Support",
         ":LLVMTargetOptions",
     ],
@@ -131,6 +133,7 @@
         ":LLVMTargetOptions",
         "@llvm-project//llvm:Core",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//mlir:Support",
     ],
 )
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/CMakeLists.txt b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/CMakeLists.txt
index fe7facd..9d4b5d6 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/CMakeLists.txt
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/CMakeLists.txt
@@ -37,6 +37,7 @@
     LLVMCore
     LLVMLinker
     LLVMSupport
+    LLVMTargetParser
     MLIRArmNeonDialect
     MLIRLLVMDialect
     MLIRLLVMToLLVMIRTranslation
@@ -103,6 +104,7 @@
     ::LLVMTargetOptions
     LLVMCore
     LLVMSupport
+    LLVMTargetParser
     MLIRSupport
     iree::compiler::Dialect::HAL::Target::LLVM::internal::LinkerTools_internal
     iree::compiler::Utils
@@ -118,6 +120,7 @@
     ::LLVMTargetOptions
     LLVMCore
     LLVMSupport
+    LLVMTargetParser
     MLIRSupport
   PUBLIC
 )
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.cpp b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.cpp
index ef46e6e..f2d8a5e 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.cpp
@@ -9,12 +9,12 @@
 #include <mutex>
 
 #include "llvm/ADT/APFloat.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/MC/SubtargetFeature.h"
 #include "llvm/MC/TargetRegistry.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Host.h"
 #include "llvm/Target/TargetOptions.h"
+#include "llvm/TargetParser/Triple.h"
 #include "llvm/TargetParser/X86TargetParser.h"
 
 namespace mlir {
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LibraryBuilder.h b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LibraryBuilder.h
index e1baa0a..dff4e32 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LibraryBuilder.h
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LibraryBuilder.h
@@ -11,8 +11,8 @@
 #include <string>
 
 #include "iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/IR/Module.h"
+#include "llvm/TargetParser/Triple.h"
 #include "mlir/Support/LogicalResult.h"
 
 namespace mlir {
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LinkerTool.h b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LinkerTool.h
index 0036762..246c8f7 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LinkerTool.h
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/LinkerTool.h
@@ -11,11 +11,11 @@
 #include <string>
 
 #include "iree/compiler/Dialect/HAL/Target/LLVM/LLVMTargetOptions.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/IR/Module.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
 #include "llvm/Support/ToolOutputFile.h"
+#include "llvm/TargetParser/Triple.h"
 #include "mlir/Support/LogicalResult.h"
 
 namespace mlir {
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/AndroidLinkerTool.cpp b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/AndroidLinkerTool.cpp
index f1b7756..98e4b0f 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/AndroidLinkerTool.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/AndroidLinkerTool.cpp
@@ -5,11 +5,11 @@
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 #include "iree/compiler/Dialect/HAL/Target/LLVM/LinkerTool.h"
-#include "llvm/ADT/Triple.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/Host.h"
+#include "llvm/TargetParser/Triple.h"
 
 #define DEBUG_TYPE "llvm-linker"
 
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/BUILD b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/BUILD
index f6232f4..454ccdc 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/BUILD
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/BUILD
@@ -26,6 +26,7 @@
         "//compiler/src/iree/compiler/Dialect/HAL/Target/LLVM:LinkerTool_hdrs",
         "@llvm-project//llvm:Core",
         "@llvm-project//llvm:Support",
+        "@llvm-project//llvm:TargetParser",
         "@llvm-project//mlir:Support",
     ],
 )
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/CMakeLists.txt b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/CMakeLists.txt
index 2c28fe7..80e126d 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/CMakeLists.txt
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVM/internal/CMakeLists.txt
@@ -23,6 +23,7 @@
   DEPS
     LLVMCore
     LLVMSupport
+    LLVMTargetParser
     MLIRSupport
     iree::compiler::Dialect::HAL::Target::LLVM::LinkerTool_hdrs
   PUBLIC
diff --git a/integrations/tensorflow/WORKSPACE b/integrations/tensorflow/WORKSPACE
index 9f8c537..e94d707 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 = "89a60b5149c6e430521d331535a49ac47358e014"
+TENSORFLOW_COMMIT = "d1c09628895840a713e92e8557b5fd90afa94c18"
 
 git_repository(
     name = "org_tensorflow",
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
index c6d35b6..5d75f46 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
@@ -599,7 +599,8 @@
   for (Value operand : transform->getOperands()) {
     if (transform::isHandleConsumed(operand, transform))
       continue;
-
+    if (!operand.getType().isa<transform::TransformHandleTypeInterface>())
+      continue;
     for (Operation *payload : state.getPayloadOps(operand)) {
       if (!payload || seen.contains(payload))
         continue;
@@ -613,7 +614,8 @@
         return !handlesUsedAfterTransform[handle];
       });
       if (allHandlesUnused) {
-        listener->removeMappings(payload);
+        // Store for mapping removal, but not remove immediately because it
+        // could invalidate other handles.
         seen.insert(payload);
       }
     }
@@ -623,13 +625,20 @@
   for (Value result : transform->getResults()) {
     if (!result.getUses().empty())
       continue;
+    if (!result.getType().isa<transform::TransformHandleTypeInterface>())
+      continue;
     for (Operation *payload : state.getPayloadOps(result)) {
       if (!payload || seen.contains(payload))
         continue;
-      listener->removeMappings(payload);
+      // Store for mapping removal, but not remove immediately because it could
+      // invalidate other handles.
       seen.insert(payload);
     }
   }
+
+  // Remove everything in one bunch.
+  for (Operation *payload : seen)
+    listener->removeMappings(payload);
 }
 
 DiagnosedSilenceableFailure transform_ext::CanonicalizedSequenceOp::apply(
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 27aeb58..947c8b4 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 27aeb58ce4d12e15b966dba86738eb65a96703f7
+Subproject commit 947c8b4b5869f18b1807863138271b3149ffc245
diff --git a/third_party/mlir-hlo b/third_party/mlir-hlo
index 8c44941..63ac2f8 160000
--- a/third_party/mlir-hlo
+++ b/third_party/mlir-hlo
@@ -1 +1 @@
-Subproject commit 8c4494120daca5dd2654bfddac1e64f2a741d65b
+Subproject commit 63ac2f8f3989266b65fc3150bd25648f75e34a62
