Integrate LLVM to llvm/llvm-project@d37fa5a838db (#24825)

Bumps the llvm-project submodule from llvm/llvm-project@6ea395e4fe4d to
llvm/llvm-project@d37fa5a838db. Clean fast-forward, no carry-over
reverts.

Adaptations needed:
- llvm/llvm-project@5835482e92cc moved the bufferization dialect's
`BufferizableOpInterface` implementations out of the op definitions into
external models that require explicit registration. Since IREE maintains
its own dialect registry, update its codegen bufferization registration
accordingly.
- llvm/llvm-project@bcbe2e2dbc6c added function-signature validation to
the TOSA validation pass, enabled by default. IREE supports dynamic
dimensions in function signatures, but the new checks reject them.
Disable this validation in IREE's TOSA input pipeline, matching
upstream's own `tosa-to-linalg` pipeline.
- Regenerated CAPI export files for the MLIR memory-effects C API
changes in llvm/llvm-project@d04e49d9abec.

Assisted-by: Claude Code

Signed-off-by: Pooja Hemashekar <hemashekar@roofline.ai>
diff --git a/compiler/plugins/input/TOSA/InputConversion/Passes.cpp b/compiler/plugins/input/TOSA/InputConversion/Passes.cpp
index ef0e07c..b9ecfa8 100644
--- a/compiler/plugins/input/TOSA/InputConversion/Passes.cpp
+++ b/compiler/plugins/input/TOSA/InputConversion/Passes.cpp
@@ -61,6 +61,10 @@
   // data type validation.
   tosaTargetOptions.level = tosa::Level::none;
   tosa::TosaValidationOptions tosaValidationOptions;
+  // IREE supports dynamic dimensions in function signatures, which TOSA
+  // signature validation rejects for spec version <= 1.0. Disable this,
+  // matching upstream tosa-to-linalg pipeline.
+  tosaValidationOptions.validateFunctionSignature = false;
   tosa::addTosaToLinalgPasses(passManager, TosaToLinalgOptions(),
                               tosaToLinalgNamedOptions, tosaValidationOptions,
                               tosaTargetOptions);
diff --git a/compiler/src/iree/compiler/API/api_exports.c b/compiler/src/iree/compiler/API/api_exports.c
index 77b5835..c92d46e 100644
--- a/compiler/src/iree/compiler/API/api_exports.c
+++ b/compiler/src/iree/compiler/API/api_exports.c
@@ -791,16 +791,25 @@
 extern void mlirMemRefTypeGetName();
 extern void mlirMemRefTypeGetStridesAndOffset();
 extern void mlirMemRefTypeGetTypeID();
+extern void mlirMemoryEffectGetEffectID();
+extern void mlirMemoryEffectInstanceClone();
 extern void mlirMemoryEffectInstanceCreate();
 extern void mlirMemoryEffectInstanceCreateForBlockArgument();
 extern void mlirMemoryEffectInstanceCreateForOpOperand();
 extern void mlirMemoryEffectInstanceCreateForOpResult();
 extern void mlirMemoryEffectInstanceCreateForSymbol();
 extern void mlirMemoryEffectInstanceDestroy();
-extern void mlirMemoryEffectInstancesListAppend();
+extern void mlirMemoryEffectInstanceGetEffect();
+extern void mlirMemoryEffectInstanceGetEffectOnFullRegion();
+extern void mlirMemoryEffectInstanceGetParameters();
+extern void mlirMemoryEffectInstanceGetResource();
+extern void mlirMemoryEffectInstanceGetStage();
+extern void mlirMemoryEffectInstanceGetSymbolRef();
+extern void mlirMemoryEffectInstanceGetValue();
 extern void mlirMemoryEffectsAllocateGet();
 extern void mlirMemoryEffectsFreeGet();
 extern void mlirMemoryEffectsOpInterfaceAttachFallbackModel();
+extern void mlirMemoryEffectsOpInterfaceGetEffects();
 extern void mlirMemoryEffectsOpInterfaceTypeID();
 extern void mlirMemoryEffectsReadGet();
 extern void mlirMemoryEffectsWriteGet();
@@ -2020,16 +2029,25 @@
   x += (uintptr_t)&mlirMemRefTypeGetName;
   x += (uintptr_t)&mlirMemRefTypeGetStridesAndOffset;
   x += (uintptr_t)&mlirMemRefTypeGetTypeID;
+  x += (uintptr_t)&mlirMemoryEffectGetEffectID;
+  x += (uintptr_t)&mlirMemoryEffectInstanceClone;
   x += (uintptr_t)&mlirMemoryEffectInstanceCreate;
   x += (uintptr_t)&mlirMemoryEffectInstanceCreateForBlockArgument;
   x += (uintptr_t)&mlirMemoryEffectInstanceCreateForOpOperand;
   x += (uintptr_t)&mlirMemoryEffectInstanceCreateForOpResult;
   x += (uintptr_t)&mlirMemoryEffectInstanceCreateForSymbol;
   x += (uintptr_t)&mlirMemoryEffectInstanceDestroy;
-  x += (uintptr_t)&mlirMemoryEffectInstancesListAppend;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetEffect;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetEffectOnFullRegion;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetParameters;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetResource;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetStage;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetSymbolRef;
+  x += (uintptr_t)&mlirMemoryEffectInstanceGetValue;
   x += (uintptr_t)&mlirMemoryEffectsAllocateGet;
   x += (uintptr_t)&mlirMemoryEffectsFreeGet;
   x += (uintptr_t)&mlirMemoryEffectsOpInterfaceAttachFallbackModel;
+  x += (uintptr_t)&mlirMemoryEffectsOpInterfaceGetEffects;
   x += (uintptr_t)&mlirMemoryEffectsOpInterfaceTypeID;
   x += (uintptr_t)&mlirMemoryEffectsReadGet;
   x += (uintptr_t)&mlirMemoryEffectsWriteGet;
diff --git a/compiler/src/iree/compiler/API/api_exports.def b/compiler/src/iree/compiler/API/api_exports.def
index 3d07803..417cfcc 100644
--- a/compiler/src/iree/compiler/API/api_exports.def
+++ b/compiler/src/iree/compiler/API/api_exports.def
@@ -781,16 +781,25 @@
   mlirMemRefTypeGetName
   mlirMemRefTypeGetStridesAndOffset
   mlirMemRefTypeGetTypeID
+  mlirMemoryEffectGetEffectID
+  mlirMemoryEffectInstanceClone
   mlirMemoryEffectInstanceCreate
   mlirMemoryEffectInstanceCreateForBlockArgument
   mlirMemoryEffectInstanceCreateForOpOperand
   mlirMemoryEffectInstanceCreateForOpResult
   mlirMemoryEffectInstanceCreateForSymbol
   mlirMemoryEffectInstanceDestroy
-  mlirMemoryEffectInstancesListAppend
+  mlirMemoryEffectInstanceGetEffect
+  mlirMemoryEffectInstanceGetEffectOnFullRegion
+  mlirMemoryEffectInstanceGetParameters
+  mlirMemoryEffectInstanceGetResource
+  mlirMemoryEffectInstanceGetStage
+  mlirMemoryEffectInstanceGetSymbolRef
+  mlirMemoryEffectInstanceGetValue
   mlirMemoryEffectsAllocateGet
   mlirMemoryEffectsFreeGet
   mlirMemoryEffectsOpInterfaceAttachFallbackModel
+  mlirMemoryEffectsOpInterfaceGetEffects
   mlirMemoryEffectsOpInterfaceTypeID
   mlirMemoryEffectsReadGet
   mlirMemoryEffectsWriteGet
diff --git a/compiler/src/iree/compiler/API/api_exports.ld b/compiler/src/iree/compiler/API/api_exports.ld
index 4973993..86643c8 100644
--- a/compiler/src/iree/compiler/API/api_exports.ld
+++ b/compiler/src/iree/compiler/API/api_exports.ld
@@ -782,16 +782,25 @@
     mlirMemRefTypeGetName;
     mlirMemRefTypeGetStridesAndOffset;
     mlirMemRefTypeGetTypeID;
+    mlirMemoryEffectGetEffectID;
+    mlirMemoryEffectInstanceClone;
     mlirMemoryEffectInstanceCreate;
     mlirMemoryEffectInstanceCreateForBlockArgument;
     mlirMemoryEffectInstanceCreateForOpOperand;
     mlirMemoryEffectInstanceCreateForOpResult;
     mlirMemoryEffectInstanceCreateForSymbol;
     mlirMemoryEffectInstanceDestroy;
-    mlirMemoryEffectInstancesListAppend;
+    mlirMemoryEffectInstanceGetEffect;
+    mlirMemoryEffectInstanceGetEffectOnFullRegion;
+    mlirMemoryEffectInstanceGetParameters;
+    mlirMemoryEffectInstanceGetResource;
+    mlirMemoryEffectInstanceGetStage;
+    mlirMemoryEffectInstanceGetSymbolRef;
+    mlirMemoryEffectInstanceGetValue;
     mlirMemoryEffectsAllocateGet;
     mlirMemoryEffectsFreeGet;
     mlirMemoryEffectsOpInterfaceAttachFallbackModel;
+    mlirMemoryEffectsOpInterfaceGetEffects;
     mlirMemoryEffectsOpInterfaceTypeID;
     mlirMemoryEffectsReadGet;
     mlirMemoryEffectsWriteGet;
diff --git a/compiler/src/iree/compiler/API/api_exports.macos.lst b/compiler/src/iree/compiler/API/api_exports.macos.lst
index c7969ca..fc3d9f7 100644
--- a/compiler/src/iree/compiler/API/api_exports.macos.lst
+++ b/compiler/src/iree/compiler/API/api_exports.macos.lst
@@ -780,16 +780,25 @@
 _mlirMemRefTypeGetName
 _mlirMemRefTypeGetStridesAndOffset
 _mlirMemRefTypeGetTypeID
+_mlirMemoryEffectGetEffectID
+_mlirMemoryEffectInstanceClone
 _mlirMemoryEffectInstanceCreate
 _mlirMemoryEffectInstanceCreateForBlockArgument
 _mlirMemoryEffectInstanceCreateForOpOperand
 _mlirMemoryEffectInstanceCreateForOpResult
 _mlirMemoryEffectInstanceCreateForSymbol
 _mlirMemoryEffectInstanceDestroy
-_mlirMemoryEffectInstancesListAppend
+_mlirMemoryEffectInstanceGetEffect
+_mlirMemoryEffectInstanceGetEffectOnFullRegion
+_mlirMemoryEffectInstanceGetParameters
+_mlirMemoryEffectInstanceGetResource
+_mlirMemoryEffectInstanceGetStage
+_mlirMemoryEffectInstanceGetSymbolRef
+_mlirMemoryEffectInstanceGetValue
 _mlirMemoryEffectsAllocateGet
 _mlirMemoryEffectsFreeGet
 _mlirMemoryEffectsOpInterfaceAttachFallbackModel
+_mlirMemoryEffectsOpInterfaceGetEffects
 _mlirMemoryEffectsOpInterfaceTypeID
 _mlirMemoryEffectsReadGet
 _mlirMemoryEffectsWriteGet
diff --git a/compiler/src/iree/compiler/Codegen/Common/CommonDialectRegistration.cpp b/compiler/src/iree/compiler/Codegen/Common/CommonDialectRegistration.cpp
index 69733a6..8bb62d3 100644
--- a/compiler/src/iree/compiler/Codegen/Common/CommonDialectRegistration.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/CommonDialectRegistration.cpp
@@ -23,6 +23,7 @@
 #include "mlir/Dialect/ArmSME/IR/ArmSME.h"
 #include "mlir/Dialect/Bufferization/IR/Bufferization.h"
 #include "mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h"
+#include "mlir/Dialect/Bufferization/Transforms/BufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Func/IR/FuncOps.h"
 #include "mlir/Dialect/GPU/IR/GPUDialect.h"
@@ -89,6 +90,7 @@
   arith::registerBufferizableOpInterfaceExternalModels(registry);
   linalg::registerBufferizableOpInterfaceExternalModels(registry);
   scf::registerBufferizableOpInterfaceExternalModels(registry);
+  bufferization::registerBufferizableOpInterfaceExternalModels(registry);
   bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(
       registry);
   tensor::registerBufferizableOpInterfaceExternalModels(registry);
diff --git a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
index fe0b8b6..23c0b5c 100644
--- a/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
+++ b/compiler/src/iree/compiler/Codegen/Interfaces/BufferizationInterfaces.cpp
@@ -20,6 +20,7 @@
 #include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
 #include "mlir/Dialect/Bufferization/IR/DstBufferizableOpInterfaceImpl.h"
+#include "mlir/Dialect/Bufferization/Transforms/BufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h"
 #include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
 #include "mlir/Dialect/Bufferization/Transforms/Transforms.h"
@@ -570,6 +571,7 @@
   arith::registerBufferizableOpInterfaceExternalModels(registry);
   linalg::registerBufferizableOpInterfaceExternalModels(registry);
   scf::registerBufferizableOpInterfaceExternalModels(registry);
+  bufferization::registerBufferizableOpInterfaceExternalModels(registry);
   bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(
       registry);
   tensor::registerBufferizableOpInterfaceExternalModels(registry);
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 6ea395e..d37fa5a 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 6ea395e4fe4db26920d57779ddae98eac6ba945d
+Subproject commit d37fa5a838db382c4138e9612616cb0ac4ef448a