Merge google -> main (#7984)

* 6ea9e5f Remove note about IREE_PLATFORM_GOOGLE.
* 121a187 Fix MetalSPIRV smoke test to match mlir changes and enable the test across all..
* 74841ca Integrate LLVM at llvm/llvm-project@128c6ed
* daf0700 Integrate LLVM at llvm/llvm-project@9ebeac8
* 20b1f52 Integrate LLVM at llvm/llvm-project@5da6d26
* f9b7a1d [mlir] Switching accessors to prefixed form (NFC)
* 4959d11 Integrate LLVM at llvm/llvm-project@09f43c1
diff --git a/iree/compiler/ConstEval/Runtime.cpp b/iree/compiler/ConstEval/Runtime.cpp
index 4818679..00c6758 100644
--- a/iree/compiler/ConstEval/Runtime.cpp
+++ b/iree/compiler/ConstEval/Runtime.cpp
@@ -299,13 +299,17 @@
 }
 
 Runtime::Runtime() {
-  registry = iree_hal_driver_registry_default();
+  IREE_CHECK_OK(
+      iree_hal_driver_registry_allocate(iree_allocator_system(), &registry));
   IREE_CHECK_OK(iree_hal_vmvx_driver_module_register(registry));
   IREE_CHECK_OK(iree_hal_module_register_types());
   IREE_CHECK_OK(iree_vm_instance_create(iree_allocator_system(), &instance));
 }
 
-Runtime::~Runtime() { iree_vm_instance_release(instance); }
+Runtime::~Runtime() {
+  iree_vm_instance_release(instance);
+  iree_hal_driver_registry_free(registry);
+}
 
 Runtime& Runtime::getInstance() {
   static Runtime instance;
diff --git a/iree/compiler/Dialect/HAL/Target/WebGPU/WebGPUTarget.cpp b/iree/compiler/Dialect/HAL/Target/WebGPU/WebGPUTarget.cpp
index 0cf66f0..8fd908d 100644
--- a/iree/compiler/Dialect/HAL/Target/WebGPU/WebGPUTarget.cpp
+++ b/iree/compiler/Dialect/HAL/Target/WebGPU/WebGPUTarget.cpp
@@ -124,8 +124,10 @@
       SymbolTable::setSymbolName(entryPointFunc, symbolName);
 
       // We only have one shader module right now, so all point to index 0.
-      // TODO(#7824): Support multiple shader modules per executable
-      entryPointOrdinals[entryPointOp.ordinal().getZExtValue()] = 0;
+      // TODO(#7824): Support multiple shader modules per executable.
+      uint64_t ordinal =
+          entryPointOp.ordinal().getValueOr(APInt(64, 0)).getZExtValue();
+      entryPointOrdinals[ordinal] = 0;
     }
 
     // Serialize the spirv::ModuleOp into binary format.