Integrate LLVM to llvm/llvm-project@b2b38d4b3352 (#24944)

Integrate LLVM to llvm/llvm-project@b2b38d4b3352 from branch
`sm-iree-integrates/llvm-20260918`

Carries adaptations for the following upstream commits:
* llvm/llvm-project@00098111a304: Region::getOps is built on
make_isa_range, so the Region::op_iterator alias is gone; the HAL
executable op accessors deduce their return type.
* llvm/llvm-project@6327754ad4eb: reverts the TargetID rename, restoring
getCanonicalFeatureString.

Assisted-by: claude code

---------

Signed-off-by: Jelle Schühmacher <schuehmacher@roofline.ai>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
diff --git a/compiler/plugins/target/ROCM/ROCMTarget.cpp b/compiler/plugins/target/ROCM/ROCMTarget.cpp
index 254f3a2..0159e17 100644
--- a/compiler/plugins/target/ROCM/ROCMTarget.cpp
+++ b/compiler/plugins/target/ROCM/ROCMTarget.cpp
@@ -448,7 +448,7 @@
       if (failed(targetID)) {
         return nullptr;
       }
-      format = targetID->getCanonicalTargetIDString();
+      format = targetID->getCanonicalFeatureString();
     } else {
       format = "rocm-hsaco-fb"; // legacy HIP
     }
@@ -1177,7 +1177,7 @@
       break;
     }
     case ContainerType::AMDGPU: {
-      std::string canonicalTargetID = targetID->getCanonicalTargetIDString();
+      std::string canonicalTargetID = targetID->getCanonicalFeatureString();
       executableBinaryFormat =
           executableBuilder.getStringAttr(canonicalTargetID);
       binaryContainer = serializeAMDGPUBinaryContainer(
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td
index 3460f27..89f947f 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td
+++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td
@@ -2652,11 +2652,11 @@
       auto conditionOps = getBody().getOps<IREE::HAL::ExecutableConditionOp>();
       return !conditionOps.empty() ? *conditionOps.begin() : IREE::HAL::ExecutableConditionOp{};
     }
-    iterator_range<Region::op_iterator<IREE::HAL::ExecutableConstantBlockOp>>
+    auto
     getConstantBlockOps() {
       return getBody().getOps<IREE::HAL::ExecutableConstantBlockOp>();
     }
-    iterator_range<Region::op_iterator<IREE::HAL::ExecutableExportOp>>
+    auto
     getExportOps() {
       return getBody().getOps<IREE::HAL::ExecutableExportOp>();
     }
@@ -2925,11 +2925,11 @@
       auto conditionOps = getBody().getOps<IREE::HAL::ExecutableConditionOp>();
       return !conditionOps.empty() ? *conditionOps.begin() : IREE::HAL::ExecutableConditionOp{};
     }
-    iterator_range<Region::op_iterator<IREE::HAL::ExecutableConstantBlockOp>>
+    auto
     getConstantBlockOps() {
       return getBody().getOps<IREE::HAL::ExecutableConstantBlockOp>();
     }
-    iterator_range<Region::op_iterator<IREE::HAL::ExecutableExportOp>>
+    auto
     getExportOps() {
       return getBody().getOps<IREE::HAL::ExecutableExportOp>();
     }
diff --git a/third_party/llvm-project b/third_party/llvm-project
index c53000a..b2b38d4 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit c53000a7282bedb125ffaab8cb072df85596d095
+Subproject commit b2b38d4b335293edca03764dd2bcfa314a880933