Merge google -> main (#6493)

* 282c1ffb0 Add webgpu-headers submodule. (#6492)
* b4eae02c4 Merge main -> google
* 4d6a4a4aa Integrate LLVM at llvm/llvm-project@5994201c8e4c
* 3697772de Synchronize submodules with LLVM at llvm/llvm-project@50302feb1d2c
* 027de9be6 Support np.int16 in Python ABI.
* 1db2f986b Integrate LLVM at llvm/llvm-project@50302feb1d2c
* c660487d1 Integrate LLVM at llvm/llvm-project@58ddeba3e0de
* bafbbecbb Integrate LLVM at llvm/llvm-project@4504e1134c91
* 78bb0979a Integrate LLVM at llvm/llvm-project@0ad1d9fdf22d
* ea5550ac0 Integrate LLVM at llvm/llvm-project@95995673d1ba
diff --git a/docs/website/docs/deployment-configurations/bare-metal.md b/docs/website/docs/deployment-configurations/bare-metal.md
index 70abd73..241bd67 100644
--- a/docs/website/docs/deployment-configurations/bare-metal.md
+++ b/docs/website/docs/deployment-configurations/bare-metal.md
@@ -58,8 +58,17 @@
 You can replace the MLIR file with the other MLIR model files, following the
 [instructions](./cpu-dylib.md#compile-the-model)
 
-!!! todo
-    Add the static library support
+### Compiling the bare-metal model for static-library support
+
+See the [static_library](https://github.com/google/iree/tree/main/iree/samples/static_library)
+demo sample for an example and instructions on running a model with IREE's
+`static_library_loader`.
+
+By default, the demo targets the host machine when compiling. To produce a
+bare-metal compatible model, run `iree-translate` as in the previous example
+and add the additional `-iree-llvm-static-library-output-path=` flag to specify
+the static library destination. This will produce a `.h\.o` file to link
+directly into the target application.
 
 ## Build bare-metal runtime from the source
 
diff --git a/iree/base/time.c b/iree/base/time.c
index 55e88b2..89889f2 100644
--- a/iree/base/time.c
+++ b/iree/base/time.c
@@ -31,7 +31,7 @@
   li.QuadPart /= kFtToMicroSec;
   return li.QuadPart;
 #elif defined(IREE_PLATFORM_ANDROID) || defined(IREE_PLATFORM_APPLE) || \
-    defined(IREE_PLATFORM_LINUX)
+    defined(IREE_PLATFORM_LINUX) || defined(IREE_PLATFORM_EMSCRIPTEN)
   struct timespec clock_time;
   clock_gettime(CLOCK_REALTIME, &clock_time);
   return clock_time.tv_nsec;