Repository: bytecodealliance/wasmtime
Pull request #8740 (2024-06-03 23:04:45)

Add some support for imported memories to generated DWARF
This is more-or-less a prerequisite for #8652 and extends the generated dwarf with expressions to not only dereference owned memories but additionally imported memories which involve some extra address calculations to be emitted in the dwarf.

<!--
Please make sure you include the following information:

- If this work has been discussed elsewhere, please include a link to that
  conversation. If it was discussed in an issue, just mention "issue #...".

- Explain why this change is needed. If the details are in an issue already,
  this can be brief.

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->



Patch:
diff --git a/Cargo.lock b/Cargo.lock
index e9b9f6e29..54440eb88 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -216,7 +216,7 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "byte-array-literals"
-version = "22.0.0"
+version = "23.0.0"
 
 [[package]]
 name = "byteorder"
@@ -578,7 +578,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-frontend",
@@ -591,14 +591,14 @@ dependencies = [
 
 [[package]]
 name = "cranelift-bforest"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-entity",
 ]
 
 [[package]]
 name = "cranelift-codegen"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "anyhow",
  "bumpalo",
@@ -628,25 +628,25 @@ dependencies = [
 
 [[package]]
 name = "cranelift-codegen-meta"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen-shared",
 ]
 
 [[package]]
 name = "cranelift-codegen-shared"
-version = "0.109.0"
+version = "0.110.0"
 
 [[package]]
 name = "cranelift-control"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "arbitrary",
 ]
 
 [[package]]
 name = "cranelift-entity"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "serde",
  "serde_derive",
@@ -683,7 +683,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-frontend"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen",
  "hashbrown 0.14.3",
@@ -707,7 +707,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-interpreter"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-entity",
@@ -721,7 +721,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-isle"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "codespan-reporting",
  "log",
@@ -730,7 +730,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-jit"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "anyhow",
  "cranelift",
@@ -751,7 +751,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-module"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -763,7 +763,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-native"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen",
  "libc",
@@ -772,7 +772,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-object"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -787,7 +787,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-reader"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -797,7 +797,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-serde"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "clap",
  "cranelift-codegen",
@@ -841,7 +841,7 @@ dependencies = [
 
 [[package]]
 name = "cranelift-wasm"
-version = "0.109.0"
+version = "0.110.0"
 dependencies = [
  "cranelift-codegen",
  "cranelift-entity",
@@ -1056,7 +1056,7 @@ checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
 
 [[package]]
 name = "embedding"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "dlmalloc",
@@ -1858,7 +1858,7 @@ dependencies = [
 
 [[package]]
 name = "min-platform-host"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "libloading",
@@ -3090,7 +3090,7 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "verify-component-adapter"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "wasmparser",
@@ -3140,7 +3140,7 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasi-common"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "bitflags 2.4.1",
@@ -3180,7 +3180,7 @@ dependencies = [
 
 [[package]]
 name = "wasi-preview1-component-adapter"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "bitflags 2.4.1",
  "byte-array-literals",
@@ -3372,7 +3372,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "addr2line",
  "anyhow",
@@ -3431,14 +3431,14 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-asm-macros"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "wasmtime-bench-api"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3454,14 +3454,14 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-c-api"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "wasmtime-c-api-impl",
 ]
 
 [[package]]
 name = "wasmtime-c-api-impl"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3479,7 +3479,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-c-api-macros"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3487,7 +3487,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cache"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "base64",
@@ -3509,7 +3509,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cli"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3575,7 +3575,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-cli-flags"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -3588,7 +3588,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-component-macro"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "component-macro-test-helpers",
@@ -3608,11 +3608,11 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-component-util"
-version = "22.0.0"
+version = "23.0.0"
 
 [[package]]
 name = "wasmtime-cranelift"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -3634,7 +3634,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-environ"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -3674,7 +3674,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-explorer"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "capstone",
@@ -3689,7 +3689,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-fiber"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "backtrace",
@@ -3759,7 +3759,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-jit-debug"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "object 0.36.0",
  "once_cell",
@@ -3769,7 +3769,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-jit-icache-coherence"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -3779,7 +3779,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-slab"
-version = "22.0.0"
+version = "23.0.0"
 
 [[package]]
 name = "wasmtime-test-macros"
@@ -3793,7 +3793,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-types"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "cranelift-entity",
  "serde",
@@ -3804,7 +3804,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-versioned-export-macros"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3813,7 +3813,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3846,7 +3846,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-http"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3872,7 +3872,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-nn"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cap-std",
@@ -3890,7 +3890,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wasi-threads"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "log",
@@ -3901,7 +3901,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wast"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "log",
@@ -3911,7 +3911,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-winch"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -3926,7 +3926,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wit-bindgen"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "heck 0.4.0",
@@ -3936,7 +3936,7 @@ dependencies = [
 
 [[package]]
 name = "wasmtime-wmemcheck"
-version = "22.0.0"
+version = "23.0.0"
 
 [[package]]
 name = "wast"
@@ -3993,7 +3993,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -4010,7 +4010,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle-generate"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "anyhow",
  "heck 0.4.0",
@@ -4023,7 +4023,7 @@ dependencies = [
 
 [[package]]
 name = "wiggle-macro"
-version = "22.0.0"
+version = "23.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4078,7 +4078,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "winch-codegen"
-version = "0.20.0"
+version = "0.21.0"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
diff --git a/Cargo.toml b/Cargo.toml
index ac53b9223..2318687cd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -153,7 +153,7 @@ exclude = [
 ]
 
 [workspace.package]
-version = "22.0.0"
+version = "23.0.0"
 authors = ["The Wasmtime Project Developers"]
 edition = "2021"
 # Wasmtime's current policy is that this number can be no larger than the
@@ -176,56 +176,56 @@ all = 'allow'
 
 [workspace.dependencies]
 arbitrary = { version = "1.3.1" }
-wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=22.0.0" }
-wasmtime = { path = "crates/wasmtime", version = "22.0.0", default-features = false }
-wasmtime-c-api-macros = { path = "crates/c-api-macros", version = "=22.0.0" }
-wasmtime-cache = { path = "crates/cache", version = "=22.0.0" }
-wasmtime-cli-flags = { path = "crates/cli-flags", version = "=22.0.0" }
-wasmtime-cranelift = { path = "crates/cranelift", version = "=22.0.0" }
-wasmtime-winch = { path = "crates/winch", version = "=22.0.0" }
-wasmtime-environ = { path = "crates/environ", version = "=22.0.0" }
-wasmtime-explorer = { path = "crates/explorer", version = "=22.0.0" }
-wasmtime-fiber = { path = "crates/fiber", version = "=22.0.0" }
-wasmtime-types = { path = "crates/types", version = "22.0.0" }
-wasmtime-jit-debug = { path = "crates/jit-debug", version = "=22.0.0" }
-wasmtime-wast = { path = "crates/wast", version = "=22.0.0" }
-wasmtime-wasi = { path = "crates/wasi", version = "22.0.0", default-features = false }
-wasmtime-wasi-http = { path = "crates/wasi-http", version = "=22.0.0", default-features = false }
-wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "22.0.0" }
-wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "22.0.0" }
-wasmtime-component-util = { path = "crates/component-util", version = "=22.0.0" }
-wasmtime-component-macro = { path = "crates/component-macro", version = "=22.0.0" }
-wasmtime-asm-macros = { path = "crates/asm-macros", version = "=22.0.0" }
-wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=22.0.0" }
-wasmtime-slab = { path = "crates/slab", version = "=22.0.0" }
+wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=23.0.0" }
+wasmtime = { path = "crates/wasmtime", version = "23.0.0", default-features = false }
+wasmtime-c-api-macros = { path = "crates/c-api-macros", version = "=23.0.0" }
+wasmtime-cache = { path = "crates/cache", version = "=23.0.0" }
+wasmtime-cli-flags = { path = "crates/cli-flags", version = "=23.0.0" }
+wasmtime-cranelift = { path = "crates/cranelift", version = "=23.0.0" }
+wasmtime-winch = { path = "crates/winch", version = "=23.0.0" }
+wasmtime-environ = { path = "crates/environ", version = "=23.0.0" }
+wasmtime-explorer = { path = "crates/explorer", version = "=23.0.0" }
+wasmtime-fiber = { path = "crates/fiber", version = "=23.0.0" }
+wasmtime-types = { path = "crates/types", version = "23.0.0" }
+wasmtime-jit-debug = { path = "crates/jit-debug", version = "=23.0.0" }
+wasmtime-wast = { path = "crates/wast", version = "=23.0.0" }
+wasmtime-wasi = { path = "crates/wasi", version = "23.0.0", default-features = false }
+wasmtime-wasi-http = { path = "crates/wasi-http", version = "=23.0.0", default-features = false }
+wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "23.0.0" }
+wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "23.0.0" }
+wasmtime-component-util = { path = "crates/component-util", version = "=23.0.0" }
+wasmtime-component-macro = { path = "crates/component-macro", version = "=23.0.0" }
+wasmtime-asm-macros = { path = "crates/asm-macros", version = "=23.0.0" }
+wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=23.0.0" }
+wasmtime-slab = { path = "crates/slab", version = "=23.0.0" }
 component-test-util = { path = "crates/misc/component-test-util" }
 component-fuzz-util = { path = "crates/misc/component-fuzz-util" }
-wiggle = { path = "crates/wiggle", version = "=22.0.0", default-features = false }
-wiggle-macro = { path = "crates/wiggle/macro", version = "=22.0.0" }
-wiggle-generate = { path = "crates/wiggle/generate", version = "=22.0.0" }
-wasi-common = { path = "crates/wasi-common", version = "=22.0.0", default-features = false }
+wiggle = { path = "crates/wiggle", version = "=23.0.0", default-features = false }
+wiggle-macro = { path = "crates/wiggle/macro", version = "=23.0.0" }
+wiggle-generate = { path = "crates/wiggle/generate", version = "=23.0.0" }
+wasi-common = { path = "crates/wasi-common", version = "=23.0.0", default-features = false }
 wasmtime-fuzzing = { path = "crates/fuzzing" }
-wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=22.0.0" }
-wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=22.0.0" }
+wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=23.0.0" }
+wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=23.0.0" }
 test-programs-artifacts = { path = 'crates/test-programs/artifacts' }
 
-cranelift-wasm = { path = "cranelift/wasm", version = "0.109.0" }
-cranelift-codegen = { path = "cranelift/codegen", version = "0.109.0", default-features = false, features = ["std", "unwind", "trace-log"] }
-cranelift-frontend = { path = "cranelift/frontend", version = "0.109.0" }
-cranelift-entity = { path = "cranelift/entity", version = "0.109.0" }
-cranelift-native = { path = "cranelift/native", version = "0.109.0" }
-cranelift-module = { path = "cranelift/module", version = "0.109.0" }
-cranelift-interpreter = { path = "cranelift/interpreter", version = "0.109.0" }
-cranelift-reader = { path = "cranelift/reader", version = "0.109.0" }
+cranelift-wasm = { path = "cranelift/wasm", version = "0.110.0" }
+cranelift-codegen = { path = "cranelift/codegen", version = "0.110.0", default-features = false, features = ["std", "unwind", "trace-log"] }
+cranelift-frontend = { path = "cranelift/frontend", version = "0.110.0" }
+cranelift-entity = { path = "cranelift/entity", version = "0.110.0" }
+cranelift-native = { path = "cranelift/native", version = "0.110.0" }
+cranelift-module = { path = "cranelift/module", version = "0.110.0" }
+cranelift-interpreter = { path = "cranelift/interpreter", version = "0.110.0" }
+cranelift-reader = { path = "cranelift/reader", version = "0.110.0" }
 cranelift-filetests = { path = "cranelift/filetests" }
-cranelift-object = { path = "cranelift/object", version = "0.109.0" }
-cranelift-jit = { path = "cranelift/jit", version = "0.109.0" }
+cranelift-object = { path = "cranelift/object", version = "0.110.0" }
+cranelift-jit = { path = "cranelift/jit", version = "0.110.0" }
 cranelift-fuzzgen = { path = "cranelift/fuzzgen" }
-cranelift-bforest = { path = "cranelift/bforest", version = "0.109.0" }
-cranelift-control = { path = "cranelift/control", version = "0.109.0" }
-cranelift = { path = "cranelift/umbrella", version = "0.109.0" }
+cranelift-bforest = { path = "cranelift/bforest", version = "0.110.0" }
+cranelift-control = { path = "cranelift/control", version = "0.110.0" }
+cranelift = { path = "cranelift/umbrella", version = "0.110.0" }
 
-winch-codegen = { path = "winch/codegen", version = "=0.20.0" }
+winch-codegen = { path = "winch/codegen", version = "=0.21.0" }
 
 wasi-preview1-component-adapter = { path = "crates/wasi-preview1-component-adapter" }
 byte-array-literals = { path = "crates/wasi-preview1-component-adapter/byte-array-literals" }
diff --git a/RELEASES.md b/RELEASES.md
index bf5e45a28..938ad5b68 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1,4 +1,4 @@
-## 22.0.0
+## 23.0.0
 
 Unreleased.
 
@@ -12,6 +12,7 @@ Release notes for previous releases of Wasmtime can be found on the respective
 release branches of the Wasmtime repository.
 
 <!-- ARCHIVE_START -->
+* [22.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-22.0.0/RELEASES.md)
 * [21.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-21.0.0/RELEASES.md)
 * [20.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-20.0.0/RELEASES.md)
 * [19.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-19.0.0/RELEASES.md)
diff --git a/cranelift/bforest/Cargo.toml b/cranelift/bforest/Cargo.toml
index bba020397..29df51fdc 100644
--- a/cranelift/bforest/Cargo.toml
+++ b/cranelift/bforest/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-bforest"
-version = "0.109.0"
+version = "0.110.0"
 description = "A forest of B+-trees"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-bforest"
diff --git a/cranelift/codegen/Cargo.toml b/cranelift/codegen/Cargo.toml
index 581104311..1750fdbdb 100644
--- a/cranelift/codegen/Cargo.toml
+++ b/cranelift/codegen/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-codegen"
-version = "0.109.0"
+version = "0.110.0"
 description = "Low-level code generator library"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-codegen"
@@ -19,7 +19,7 @@ workspace = true
 anyhow = { workspace = true, optional = true, features = ['std'] }
 bumpalo = "3"
 capstone = { workspace = true, optional = true }
-cranelift-codegen-shared = { path = "./shared", version = "0.109.0" }
+cranelift-codegen-shared = { path = "./shared", version = "0.110.0" }
 cranelift-entity = { workspace = true }
 cranelift-bforest = { workspace = true }
 cranelift-control = { workspace = true }
@@ -46,8 +46,8 @@ similar = "2.1.0"
 env_logger = { workspace = true }
 
 [build-dependencies]
-cranelift-codegen-meta = { path = "meta", version = "0.109.0" }
-cranelift-isle = { path = "../isle/isle", version = "=0.109.0" }
+cranelift-codegen-meta = { path = "meta", version = "0.110.0" }
+cranelift-isle = { path = "../isle/isle", version = "=0.110.0" }
 
 [features]
 default = ["std", "unwind", "host-arch", "timing"]
diff --git a/cranelift/codegen/meta/Cargo.toml b/cranelift/codegen/meta/Cargo.toml
index 13ae80d4c..406386fea 100644
--- a/cranelift/codegen/meta/Cargo.toml
+++ b/cranelift/codegen/meta/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "cranelift-codegen-meta"
 authors = ["The Cranelift Project Developers"]
-version = "0.109.0"
+version = "0.110.0"
 description = "Metaprogram for cranelift-codegen code generator library"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
@@ -15,4 +15,4 @@ workspace = true
 rustdoc-args = [ "--document-private-items" ]
 
 [dependencies]
-cranelift-codegen-shared = { path = "../shared", version = "0.109.0" }
+cranelift-codegen-shared = { path = "../shared", version = "0.110.0" }
diff --git a/cranelift/codegen/shared/Cargo.toml b/cranelift/codegen/shared/Cargo.toml
index a610e5d67..0ddcb9578 100644
--- a/cranelift/codegen/shared/Cargo.toml
+++ b/cranelift/codegen/shared/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-codegen-shared"
-version = "0.109.0"
+version = "0.110.0"
 description = "For code shared between cranelift-codegen-meta and cranelift-codegen"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/codegen/src/machinst/isle.rs b/cranelift/codegen/src/machinst/isle.rs
index b771ed2bc..547eb9048 100644
--- a/cranelift/codegen/src/machinst/isle.rs
+++ b/cranelift/codegen/src/machinst/isle.rs
@@ -223,7 +223,13 @@ macro_rules! isle_lower_prelude_methods {
         #[inline]
         fn i64_from_iconst(&mut self, val: Value) -> Option<i64> {
             let inst = self.def_inst(val)?;
-            let constant = self.lower_ctx.get_constant(inst)? as i64;
+            let constant = match self.lower_ctx.data(inst) {
+                InstructionData::UnaryImm {
+                    opcode: Opcode::Iconst,
+                    imm,
+                } => imm.bits(),
+                _ => return None,
+            };
             let ty = self.lower_ctx.output_ty(inst, 0);
             let shift_amt = std::cmp::max(0, 64 - self.ty_bits(ty));
             Some((constant << shift_amt) >> shift_amt)
diff --git a/cranelift/control/Cargo.toml b/cranelift/control/Cargo.toml
index e6af60e6e..0a897825d 100644
--- a/cranelift/control/Cargo.toml
+++ b/cranelift/control/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-control"
-version = "0.109.0"
+version = "0.110.0"
 description = "White-box fuzz testing framework"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/entity/Cargo.toml b/cranelift/entity/Cargo.toml
index ea8890bb8..ea56b1687 100644
--- a/cranelift/entity/Cargo.toml
+++ b/cranelift/entity/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-entity"
-version = "0.109.0"
+version = "0.110.0"
 description = "Data structures using entity references as mapping keys"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-entity"
diff --git a/cranelift/frontend/Cargo.toml b/cranelift/frontend/Cargo.toml
index 8d2b2423f..80332b1d7 100644
--- a/cranelift/frontend/Cargo.toml
+++ b/cranelift/frontend/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-frontend"
-version = "0.109.0"
+version = "0.110.0"
 description = "Cranelift IR builder helper"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-frontend"
diff --git a/cranelift/interpreter/Cargo.toml b/cranelift/interpreter/Cargo.toml
index b1affca22..49aaf091e 100644
--- a/cranelift/interpreter/Cargo.toml
+++ b/cranelift/interpreter/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-interpreter"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Interpret Cranelift IR"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/isle/isle/Cargo.toml b/cranelift/isle/isle/Cargo.toml
index 64889ba87..ff8505049 100644
--- a/cranelift/isle/isle/Cargo.toml
+++ b/cranelift/isle/isle/Cargo.toml
@@ -6,7 +6,7 @@ license = "Apache-2.0 WITH LLVM-exception"
 name = "cranelift-isle"
 readme = "../README.md"
 repository = "https://github.com/bytecodealliance/wasmtime/tree/main/cranelift/isle"
-version = "0.109.0"
+version = "0.110.0"
 
 [lints]
 workspace = true
diff --git a/cranelift/jit/Cargo.toml b/cranelift/jit/Cargo.toml
index 3d2469a2a..5f80bf56b 100644
--- a/cranelift/jit/Cargo.toml
+++ b/cranelift/jit/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-jit"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "A JIT library backed by Cranelift"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/module/Cargo.toml b/cranelift/module/Cargo.toml
index d0dcf234b..a941e933e 100644
--- a/cranelift/module/Cargo.toml
+++ b/cranelift/module/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-module"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Support for linking functions and data with Cranelift"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/native/Cargo.toml b/cranelift/native/Cargo.toml
index 10cc705da..cf3d48ce7 100644
--- a/cranelift/native/Cargo.toml
+++ b/cranelift/native/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-native"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Support for targeting the host with Cranelift"
 documentation = "https://docs.rs/cranelift-native"
diff --git a/cranelift/object/Cargo.toml b/cranelift/object/Cargo.toml
index 37e7a4570..44af256cb 100644
--- a/cranelift/object/Cargo.toml
+++ b/cranelift/object/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-object"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Emit Cranelift output to native object files with `object`"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/reader/Cargo.toml b/cranelift/reader/Cargo.toml
index 8f0e782f5..f5188f525 100644
--- a/cranelift/reader/Cargo.toml
+++ b/cranelift/reader/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift-reader"
-version = "0.109.0"
+version = "0.110.0"
 description = "Cranelift textual IR reader"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift-reader"
diff --git a/cranelift/serde/Cargo.toml b/cranelift/serde/Cargo.toml
index 8a771194b..accf25aeb 100644
--- a/cranelift/serde/Cargo.toml
+++ b/cranelift/serde/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-serde"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Serializer/Deserializer for Cranelift IR"
 repository = "https://github.com/bytecodealliance/wasmtime"
diff --git a/cranelift/umbrella/Cargo.toml b/cranelift/umbrella/Cargo.toml
index a2b837a15..4a507b1a6 100644
--- a/cranelift/umbrella/Cargo.toml
+++ b/cranelift/umbrella/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 authors = ["The Cranelift Project Developers"]
 name = "cranelift"
-version = "0.109.0"
+version = "0.110.0"
 description = "Umbrella for commonly-used cranelift crates"
 license = "Apache-2.0 WITH LLVM-exception"
 documentation = "https://docs.rs/cranelift"
diff --git a/cranelift/wasm/Cargo.toml b/cranelift/wasm/Cargo.toml
index f3a7ddc15..3b33c3d84 100644
--- a/cranelift/wasm/Cargo.toml
+++ b/cranelift/wasm/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "cranelift-wasm"
-version = "0.109.0"
+version = "0.110.0"
 authors = ["The Cranelift Project Developers"]
 description = "Translator from WebAssembly to Cranelift IR"
 documentation = "https://docs.rs/cranelift-wasm"
diff --git a/crates/c-api/include/wasmtime.h b/crates/c-api/include/wasmtime.h
index 7371c2823..9abffb85f 100644
--- a/crates/c-api/include/wasmtime.h
+++ b/crates/c-api/include/wasmtime.h
@@ -206,11 +206,11 @@
 /**
  * \brief Wasmtime version string.
  */
-#define WASMTIME_VERSION "22.0.0"
+#define WASMTIME_VERSION "23.0.0"
 /**
  * \brief Wasmtime major version number.
  */
-#define WASMTIME_VERSION_MAJOR 22
+#define WASMTIME_VERSION_MAJOR 23
 /**
  * \brief Wasmtime minor version number.
  */
diff --git a/crates/cranelift/src/compiler.rs b/crates/cranelift/src/compiler.rs
index 4262f5f87..6b3390b96 100644
--- a/crates/cranelift/src/compiler.rs
+++ b/crates/cranelift/src/compiler.rs
@@ -459,7 +459,11 @@ impl wasmtime_environ::Compiler for Compiler {
         );
 
         let memory_offset = if ofs.num_imported_memories > 0 {
-            ModuleMemoryOffset::Imported(ofs.vmctx_vmmemory_import(MemoryIndex::new(0)))
+            ModuleMemoryOffset::Imported {
+                offset_to_vm_memory_definition: ofs.vmctx_vmmemory_import(MemoryIndex::new(0))
+                    + u32::from(ofs.vmmemory_import_from()),
+                offset_to_memory_base: ofs.ptr.vmmemory_definition_base().into(),
+            }
         } else if ofs.num_defined_memories > 0 {
             // The addition of shared memory makes the following assumption,
             // "owned memory index = 0", possibly false. If the first memory
diff --git a/crates/cranelift/src/debug.rs b/crates/cranelift/src/debug.rs
index ca92d77b6..083a3ba47 100644
--- a/crates/cranelift/src/debug.rs
+++ b/crates/cranelift/src/debug.rs
@@ -7,8 +7,15 @@ pub enum ModuleMemoryOffset {
     None,
     /// Offset to the defined memory.
     Defined(u32),
-    /// Offset to the imported memory.
-    Imported(#[allow(dead_code)] u32),
+    /// This memory is imported.
+    Imported {
+        /// Offset, in bytes, to the `*mut VMMemoryDefinition` structure within
+        /// `VMContext`.
+        offset_to_vm_memory_definition: u32,
+        /// Offset, in bytes within `VMMemoryDefinition` where the `base` field
+        /// lies.
+        offset_to_memory_base: u32,
+    },
 }
 
 pub use write_debuginfo::{emit_dwarf, DwarfSectionRelocTarget};
diff --git a/crates/cranelift/src/debug/transform/expression.rs b/crates/cranelift/src/debug/transform/expression.rs
index f78b3b745..17c560906 100644
--- a/crates/cranelift/src/debug/transform/expression.rs
+++ b/crates/cranelift/src/debug/transform/expression.rs
@@ -21,33 +21,25 @@ pub struct FunctionFrameInfo<'a> {
     pub memory_offset: ModuleMemoryOffset,
 }
 
-impl<'a> FunctionFrameInfo<'a> {
-    fn vmctx_memory_offset(&self) -> Option<i64> {
-        match self.memory_offset {
-            ModuleMemoryOffset::Defined(x) => Some(x as i64),
-            ModuleMemoryOffset::Imported(_) => {
-                // TODO implement memory offset for imported memory
-                None
-            }
-            ModuleMemoryOffset::None => None,
-        }
-    }
-}
-
 struct ExpressionWriter(write::EndianVec<gimli::RunTimeEndian>);
 
+enum VmctxBase {
+    Reg(u16),
+    OnStack,
+}
+
 impl ExpressionWriter {
-    pub fn new() -> Self {
+    fn new() -> Self {
         let endian = gimli::RunTimeEndian::Little;
         let writer = write::EndianVec::new(endian);
         ExpressionWriter(writer)
     }
 
-    pub fn write_op(&mut self, op: gimli::DwOp) -> write::Result<()> {
+    fn write_op(&mut self, op: gimli::DwOp) -> write::Result<()> {
         self.write_u8(op.0 as u8)
     }
 
-    pub fn write_op_reg(&mut self, reg: u16) -> write::Result<()> {
+    fn write_op_reg(&mut self, reg: u16) -> write::Result<()> {
         if reg < 32 {
             self.write_u8(gimli::constants::DW_OP_reg0.0 as u8 + reg as u8)
         } else {
@@ -56,7 +48,7 @@ impl ExpressionWriter {
         }
     }
 
-    pub fn write_op_breg(&mut self, reg: u16) -> write::Result<()> {
+    fn write_op_breg(&mut self, reg: u16) -> write::Result<()> {
         if reg < 32 {
             self.write_u8(gimli::constants::DW_OP_breg0.0 as u8 + reg as u8)
         } else {
@@ -65,25 +57,71 @@ impl ExpressionWriter {
         }
     }
 
-    pub fn write_u8(&mut self, b: u8) -> write::Result<()> {
+    fn write_u8(&mut self, b: u8) -> write::Result<()> {
         write::Writer::write_u8(&mut self.0, b)
     }
 
-    pub fn write_u32(&mut self, b: u32) -> write::Result<()> {
+    fn write_u32(&mut self, b: u32) -> write::Result<()> {
         write::Writer::write_u32(&mut self.0, b)
     }
 
-    pub fn write_uleb128(&mut self, i: u64) -> write::Result<()> {
+    fn write_uleb128(&mut self, i: u64) -> write::Result<()> {
         write::Writer::write_uleb128(&mut self.0, i)
     }
 
-    pub fn write_sleb128(&mut self, i: i64) -> write::Result<()> {
+    fn write_sleb128(&mut self, i: i64) -> write::Result<()> {
         write::Writer::write_sleb128(&mut self.0, i)
     }
 
-    pub fn into_vec(self) -> Vec<u8> {
+    fn into_vec(self) -> Vec<u8> {
         self.0.into_vec()
     }
+
+    fn gen_address_of_memory_base_pointer(
+        &mut self,
+        vmctx: VmctxBase,
+        memory_base: &ModuleMemoryOffset,
+    ) -> write::Result<()> {
+        match *memory_base {
+            ModuleMemoryOffset::Defined(offset) => match vmctx {
+                VmctxBase::Reg(reg) => {
+                    self.write_op_breg(reg)?;
+                    self.write_sleb128(offset.into())?;
+                }
+                VmctxBase::OnStack => {
+                    self.write_op(gimli::constants::DW_OP_consts)?;
+                    self.write_sleb128(offset.into())?;
+                    self.write_op(gimli::constants::DW_OP_plus)?;
+                }
+            },
+            ModuleMemoryOffset::Imported {
+                offset_to_vm_memory_definition,
+                offset_to_memory_base,
+            } => {
+                match vmctx {
+                    VmctxBase::Reg(reg) => {
+                        self.write_op_breg(reg)?;
+                        self.write_sleb128(offset_to_vm_memory_definition.into())?;
+                    }
+                    VmctxBase::OnStack => {
+                        if offset_to_vm_memory_definition > 0 {
+                            self.write_op(gimli::constants::DW_OP_consts)?;
+                            self.write_sleb128(offset_to_vm_memory_definition.into())?;
+                        }
+                        self.write_op(gimli::constants::DW_OP_plus)?;
+                    }
+                }
+                self.write_op(gimli::constants::DW_OP_deref)?;
+                if offset_to_memory_base > 0 {
+                    self.write_op(gimli::constants::DW_OP_consts)?;
+                    self.write_sleb128(offset_to_memory_base.into())?;
+                    self.write_op(gimli::constants::DW_OP_plus)?;
+                }
+            }
+            ModuleMemoryOffset::None => return Err(write::Error::InvalidAttributeValue),
+        }
+        Ok(())
+    }
 }
 
 #[derive(Debug, Clone, PartialEq)]
@@ -166,34 +204,16 @@ fn append_memory_deref(
     isa: &dyn TargetIsa,
 ) -> Result<bool> {
     let mut writer = ExpressionWriter::new();
-    // FIXME for imported memory
-    match vmctx_loc {
-        LabelValueLoc::Reg(r) => {
-            let reg = isa.map_regalloc_reg_to_dwarf(r)?;
-            writer.write_op_breg(reg)?;
-            let memory_offset = match frame_info.vmctx_memory_offset() {
-                Some(offset) => offset,
-                None => {
-                    return Ok(false);
-                }
-            };
-            writer.write_sleb128(memory_offset)?;
-        }
+    let vmctx_base = match vmctx_loc {
+        LabelValueLoc::Reg(r) => VmctxBase::Reg(isa.map_regalloc_reg_to_dwarf(r)?),
         LabelValueLoc::CFAOffset(off) => {
             writer.write_op(gimli::constants::DW_OP_fbreg)?;
             writer.write_sleb128(off)?;
             writer.write_op(gimli::constants::DW_OP_deref)?;
-            writer.write_op(gimli::constants::DW_OP_consts)?;
-            let memory_offset = match frame_info.vmctx_memory_offset() {
-                Some(offset) => offset,
-                None => {
-                    return Ok(false);
-                }
-            };
-            writer.write_sleb128(memory_offset)?;
-            writer.write_op(gimli::constants::DW_OP_plus)?;
+            VmctxBase::OnStack
         }
-    }
+    };
+    writer.gen_address_of_memory_base_pointer(vmctx_base, &frame_info.memory_offset)?;
     writer.write_op(gimli::constants::DW_OP_deref)?;
     writer.write_op(gimli::constants::DW_OP_swap)?;
     writer.write_op(gimli::constants::DW_OP_const4u)?;
diff --git a/crates/cranelift/src/debug/transform/utils.rs b/crates/cranelift/src/debug/transform/utils.rs
index 7ef6f17f8..951833bf4 100644
--- a/crates/cranelift/src/debug/transform/utils.rs
+++ b/crates/cranelift/src/debug/transform/utils.rs
@@ -92,7 +92,7 @@ pub(crate) fn add_internal_types(
                 gimli::DW_AT_data_member_location = write::AttributeValue::Udata(memory_offset as u64)
             });
         }
-        ModuleMemoryOffset::Imported(_) => {
+        ModuleMemoryOffset::Imported { .. } => {
             // TODO implement convenience pointer to and additional types for VMMemoryImport.
         }
         ModuleMemoryOffset::None => (),
diff --git a/crates/wasi-nn/src/backend/winml.rs b/crates/wasi-nn/src/backend/winml.rs
index 5940b901e..e11761f86 100644
--- a/crates/wasi-nn/src/backend/winml.rs
+++ b/crates/wasi-nn/src/backend/winml.rs
@@ -3,7 +3,7 @@
 use super::{BackendError, BackendExecutionContext, BackendFromDir, BackendGraph, BackendInner};
 use crate::wit::types::{ExecutionTarget, GraphEncoding, Tensor};
 use crate::{ExecutionContext, Graph};
-use std::{fs::File, io::Read, path::Path};
+use std::{fs::File, io::Read, mem::size_of, path::Path};
 use windows::core::{ComInterface, HSTRING};
 use windows::Storage::Streams::{
     DataWriter, InMemoryRandomAccessStream, RandomAccessStreamReference,
@@ -134,7 +134,6 @@ impl BackendExecutionContext for WinMLExecutionContext {
         let output_name = self.session.Model()?.OutputFeatures()?.GetAt(index)?;
         let output_name_hstring = output_name.Name()?;
 
-        // Print results.
         let vector_view = self
             .result
             .as_ref()
@@ -144,14 +143,15 @@ impl BackendExecutionContext for WinMLExecutionContext {
             .cast::<TensorFloat>()?
             .GetAsVectorView()?;
         let output: Vec<f32> = vector_view.into_iter().collect();
+        let len_to_copy = output.len() * size_of::<f32>();
         unsafe {
-            destination.copy_from_slice(std::slice::from_raw_parts(
+            destination[..len_to_copy].copy_from_slice(std::slice::from_raw_parts(
                 output.as_ptr() as *const u8,
-                output.len() * 4,
+                len_to_copy,
             ));
         }
 
-        Ok(0)
+        Ok(len_to_copy as u32)
     }
 }
 
diff --git a/crates/wasmtime/src/runtime/func.rs b/crates/wasmtime/src/runtime/func.rs
index 54a8975e8..c71bf53d6 100644
--- a/crates/wasmtime/src/runtime/func.rs
+++ b/crates/wasmtime/src/runtime/func.rs
@@ -315,7 +315,7 @@ enum FuncKind {
     /// is dropped.
     ///
     /// Note that this is intentionally placed behind a `Box` to minimize the
-    /// size of this enum since the most common variant for high-peformance
+    /// size of this enum since the most common variant for high-performance
     /// situations is `SharedHost` and `StoreOwned`, so this ideally isn't
     /// larger than those two.
     Host(Box<HostFunc>),
diff --git a/crates/wasmtime/src/runtime/vm/mmap.rs b/crates/wasmtime/src/runtime/vm/mmap.rs
index 7cc8409ac..c2bbf9f84 100644
--- a/crates/wasmtime/src/runtime/vm/mmap.rs
+++ b/crates/wasmtime/src/runtime/vm/mmap.rs
@@ -153,7 +153,7 @@ impl Mmap {
     /// Return the length of the allocated memory.
     ///
     /// This is the byte length of this entire mapping which includes both
-    /// addressible and non-addressible memory.
+    /// addressable and non-addressable memory.
     #[inline]
     pub fn len(&self) -> usize {
         self.sys.len()
diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
index ad0f41ae2..3651d93ee 100644
--- a/supply-chain/imports.lock
+++ b/supply-chain/imports.lock
@@ -13,6 +13,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-bforest]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -25,6 +29,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-bforest]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-codegen]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -37,6 +45,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-codegen]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-codegen-meta]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -49,6 +61,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-codegen-meta]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-codegen-shared]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -61,6 +77,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-codegen-shared]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-control]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -73,6 +93,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-control]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-entity]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -85,6 +109,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-entity]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-frontend]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -97,6 +125,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-frontend]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-interpreter]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -109,6 +141,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-interpreter]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-isle]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -121,6 +157,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-isle]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-jit]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -133,6 +173,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-jit]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-module]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -145,6 +189,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-module]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-native]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -157,6 +205,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-native]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-object]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -169,6 +221,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-object]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-reader]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -181,6 +237,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-reader]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-serde]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -193,6 +253,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-serde]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.cranelift-wasm]]
 version = "0.107.0"
 audited_as = "0.105.2"
@@ -205,6 +269,10 @@ audited_as = "0.106.1"
 version = "0.109.0"
 audited_as = "0.107.1"
 
+[[unpublished.cranelift-wasm]]
+version = "0.110.0"
+audited_as = "0.108.1"
+
 [[unpublished.wasi-common]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -217,6 +285,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasi-common]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -229,6 +301,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-asm-macros]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -241,6 +317,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-asm-macros]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-cache]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -253,6 +333,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-cache]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-cli]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -265,6 +349,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-cli]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-cli-flags]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -277,6 +365,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-cli-flags]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-component-macro]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -289,6 +381,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-component-macro]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-component-util]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -301,6 +397,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-component-util]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-cranelift]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -313,6 +413,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-cranelift]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-cranelift-shared]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -329,6 +433,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-environ]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-explorer]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -341,6 +449,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-explorer]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-fiber]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -353,6 +465,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-fiber]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-jit-debug]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -365,6 +481,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-jit-debug]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-jit-icache-coherence]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -377,6 +497,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-jit-icache-coherence]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-runtime]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -397,6 +521,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-slab]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-types]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -409,6 +537,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-types]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wasi]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -421,6 +553,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wasi]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wasi-http]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -433,6 +569,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wasi-http]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wasi-nn]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -445,6 +585,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wasi-nn]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wasi-threads]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -457,6 +601,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wasi-threads]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wast]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -469,6 +617,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wast]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-winch]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -481,6 +633,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-winch]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wit-bindgen]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -493,6 +649,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wit-bindgen]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wasmtime-wmemcheck]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -505,6 +665,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wasmtime-wmemcheck]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wiggle]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -517,6 +681,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wiggle]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wiggle-generate]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -529,6 +697,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wiggle-generate]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wiggle-macro]]
 version = "20.0.0"
 audited_as = "18.0.2"
@@ -541,6 +713,10 @@ audited_as = "19.0.1"
 version = "22.0.0"
 audited_as = "20.0.1"
 
+[[unpublished.wiggle-macro]]
+version = "23.0.0"
+audited_as = "21.0.1"
+
 [[unpublished.wiggle-test]]
 version = "0.0.0"
 audited_as = "0.1.0"
@@ -557,6 +733,10 @@ audited_as = "0.17.1"
 version = "0.20.0"
 audited_as = "0.18.1"
 
+[[unpublished.winch-codegen]]
+version = "0.21.0"
+audited_as = "0.19.1"
+
 [[publisher.aho-corasick]]
 version = "1.0.2"
 when = "2023-06-04"
@@ -750,6 +930,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-bforest]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -768,6 +954,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-bforest]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -786,6 +978,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen-meta]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -804,6 +1002,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen-meta]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-codegen-shared]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -822,6 +1026,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-codegen-shared]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-control]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -840,6 +1050,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-control]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-entity]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -858,6 +1074,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-entity]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-frontend]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -876,6 +1098,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-frontend]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-interpreter]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -894,6 +1122,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-interpreter]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-isle]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -912,6 +1146,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-isle]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-jit]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -930,6 +1170,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-jit]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-module]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -948,6 +1194,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-module]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-native]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -966,6 +1218,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-native]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-object]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -984,6 +1242,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-object]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-reader]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -1002,6 +1266,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-reader]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-serde]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -1020,6 +1290,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-serde]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.cranelift-wasm]]
 version = "0.105.2"
 when = "2024-02-28"
@@ -1038,6 +1314,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.cranelift-wasm]]
+version = "0.108.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.derive_arbitrary]]
 version = "1.3.0"
 when = "2023-03-13"
@@ -1454,6 +1736,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasi-common]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasm-bindgen]]
 version = "0.2.87"
 when = "2023-06-12"
@@ -1795,6 +2083,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-asm-macros]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1813,6 +2107,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-asm-macros]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cache]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1831,6 +2131,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cache]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cli]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1849,6 +2155,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cli]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cli-flags]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1867,6 +2179,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cli-flags]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-component-macro]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1885,6 +2203,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-component-macro]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-component-util]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1903,6 +2227,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-component-util]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-cranelift]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1921,6 +2251,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-cranelift]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-environ]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1939,6 +2275,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-environ]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-explorer]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1957,6 +2299,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-explorer]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-fiber]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1975,6 +2323,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-fiber]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-jit-debug]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -1993,6 +2347,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-jit-debug]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-jit-icache-coherence]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2011,6 +2371,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-jit-icache-coherence]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-slab]]
 version = "19.0.0"
 when = "2024-03-20"
@@ -2029,6 +2395,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-slab]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-types]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2047,6 +2419,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-types]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2065,6 +2443,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-http]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2083,6 +2467,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-http]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-nn]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2101,6 +2491,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-nn]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wasi-threads]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2119,6 +2515,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wasi-threads]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wast]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2137,6 +2539,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wast]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-winch]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2155,6 +2563,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-winch]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wit-bindgen]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2173,6 +2587,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wit-bindgen]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wasmtime-wmemcheck]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2191,6 +2611,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wasmtime-wmemcheck]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wast]]
 version = "201.0.0"
 when = "2024-02-27"
@@ -2317,6 +2743,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-generate]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2335,6 +2767,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle-generate]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-macro]]
 version = "18.0.2"
 when = "2024-02-28"
@@ -2353,6 +2791,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.wiggle-macro]]
+version = "21.0.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.wiggle-test]]
 version = "0.1.0"
 when = "2020-03-12"
@@ -2385,6 +2829,12 @@ when = "2024-05-03"
 user-id = 73222
 user-login = "wasmtime-publish"
 
+[[publisher.winch-codegen]]
+version = "0.19.1"
+when = "2024-05-22"
+user-id = 73222
+user-login = "wasmtime-publish"
+
 [[publisher.windows]]
 version = "0.52.0"
 when = "2023-11-15"
diff --git a/winch/codegen/Cargo.toml b/winch/codegen/Cargo.toml
index cc1f57346..8f82dec22 100644
--- a/winch/codegen/Cargo.toml
+++ b/winch/codegen/Cargo.toml
@@ -4,7 +4,7 @@ name = "winch-codegen"
 description = "Winch code generation library"
 license = "Apache-2.0 WITH LLVM-exception"
 repository = "https://github.com/bytecodealliance/wasmtime"
-version = "0.20.0"
+version = "0.21.0"
 edition.workspace = true
 
 [lints]


Test patch:
diff --git a/crates/test-programs/artifacts/build.rs b/crates/test-programs/artifacts/build.rs
index a515415b6..0fa76093e 100644
--- a/crates/test-programs/artifacts/build.rs
+++ b/crates/test-programs/artifacts/build.rs
@@ -33,7 +33,7 @@ fn build_and_generate_tests() {
         .arg("--target=wasm32-wasi")
         .arg("--package=test-programs")
         .env("CARGO_TARGET_DIR", &out_dir)
-        .env("CARGO_PROFILE_DEV_DEBUG", "1")
+        .env("CARGO_PROFILE_DEV_DEBUG", "2")
         .env("RUSTFLAGS", rustflags())
         .env_remove("CARGO_ENCODED_RUSTFLAGS");
     eprintln!("running: {cmd:?}");
@@ -75,6 +75,7 @@ fn build_and_generate_tests() {
             s if s.starts_with("api_") => "api",
             s if s.starts_with("nn_") => "nn",
             s if s.starts_with("piped_") => "piped",
+            s if s.starts_with("dwarf_") => "dwarf",
             // If you're reading this because you hit this panic, either add it
             // to a test suite above or add a new "suite". The purpose of the
             // categorization above is to have a static assertion that tests
@@ -89,7 +90,7 @@ fn build_and_generate_tests() {
         }
 
         // Generate a component from each test.
-        if kind == "nn" {
+        if kind == "nn" || target == "dwarf_imported_memory" {
             continue;
         }
         let adapter = match target.as_str() {
diff --git a/crates/test-programs/build.rs b/crates/test-programs/build.rs
new file mode 100644
index 000000000..734cbddbb
--- /dev/null
+++ b/crates/test-programs/build.rs
@@ -0,0 +1,4 @@
+fn main() {
+    println!("cargo:rustc-link-arg-bin=dwarf_imported_memory=--import-memory");
+    println!("cargo:rustc-link-arg-bin=dwarf_imported_memory=--export-memory");
+}
diff --git a/crates/test-programs/src/bin/dwarf_imported_memory.rs b/crates/test-programs/src/bin/dwarf_imported_memory.rs
new file mode 100644
index 000000000..fe4ca3784
--- /dev/null
+++ b/crates/test-programs/src/bin/dwarf_imported_memory.rs
@@ -0,0 +1,1 @@
+include!("./dwarf_simple.rs");
diff --git a/crates/test-programs/src/bin/dwarf_simple.rs b/crates/test-programs/src/bin/dwarf_simple.rs
new file mode 100644
index 000000000..ce79fa54e
--- /dev/null
+++ b/crates/test-programs/src/bin/dwarf_simple.rs
@@ -0,0 +1,6 @@
+fn main() {
+    let mut a = 100;
+    a += 10;
+    let b = a + 7;
+    println!("{b}");
+}
diff --git a/tests/all/debug/lldb.rs b/tests/all/debug/lldb.rs
index b52a6f6aa..d0c653e06 100644
--- a/tests/all/debug/lldb.rs
+++ b/tests/all/debug/lldb.rs
@@ -34,14 +34,18 @@ fn lldb_with_script(args: &[&str], script: &str) -> Result<String> {
     cmd.args(args);
 
     let output = cmd.output().expect("success");
+    let stdout = String::from_utf8(output.stdout)?;
+    let stderr = String::from_utf8(output.stderr)?;
     if !output.status.success() {
         bail!(
-            "failed to execute {:?}: {}",
-            cmd,
-            String::from_utf8_lossy(&output.stderr),
+            "failed to execute {cmd:?}:\n\
+            --- stderr ---\n\
+            {stderr}\n\
+            --- stdout ---\n\
+            {stdout}",
         );
     }
-    Ok(String::from_utf8(output.stdout)?)
+    Ok(stdout)
 }
 
 fn check_lldb_output(output: &str, directives: &str) -> Result<()> {
@@ -166,7 +170,7 @@ check: Breakpoint 1: no locations (pending)
 check: stop reason = breakpoint 1.1
 check: frame #0
 sameln: norm(n=(__ptr =
-check: = 27
+check: 27
 check: resuming
 "#,
     )?;
@@ -295,3 +299,75 @@ check: exited with status = 0
     )?;
     Ok(())
 }
+
+#[cfg(all(
+    any(target_os = "linux", target_os = "macos"),
+    target_pointer_width = "64"
+))]
+mod test_programs {
+    use super::{check_lldb_output, lldb_with_script};
+    use anyhow::Result;
+    use test_programs_artifacts::*;
+
+    macro_rules! assert_test_exists {
+        ($name:ident) => {
+            #[allow(unused_imports)]
+            use self::$name as _;
+        };
+    }
+    foreach_dwarf!(assert_test_exists);
+
+    fn test_dwarf_simple(wasm: &str, extra_args: &[&str]) -> Result<()> {
+        println!("testing {wasm:?}");
+        let mut args = vec!["-Ccache=n", "-Oopt-level=0", "-Ddebug-info"];
+        args.extend(extra_args);
+        args.push(wasm);
+        let output = lldb_with_script(
+            &args,
+            r#"
+breakpoint set --file dwarf_simple.rs --line 3
+breakpoint set --file dwarf_simple.rs --line 5
+r
+fr v
+c
+fr v
+c"#,
+        )?;
+
+        check_lldb_output(
+            &output,
+            r#"
+check: Breakpoint 1: no locations (pending)
+check: Unable to resolve breakpoint to any actual locations.
+check: 1 location added to breakpoint 1
+check: stop reason = breakpoint 1.1
+check: dwarf_simple.rs:3
+check: a = 100
+check: dwarf_simple.rs:5
+check: a = 110
+check: b = 117
+check: resuming
+check: exited with status = 0
+"#,
+        )?;
+        Ok(())
+    }
+
+    #[test]
+    #[ignore]
+    fn dwarf_simple() -> Result<()> {
+        for wasm in [DWARF_SIMPLE] {
+            test_dwarf_simple(wasm, &[])?;
+        }
+        Ok(())
+    }
+
+    #[test]
+    #[ignore]
+    fn dwarf_imported_memory() -> Result<()> {
+        test_dwarf_simple(
+            DWARF_IMPORTED_MEMORY,
+            &["--preload=env=./tests/all/debug/satisfy_memory_import.wat"],
+        )
+    }
+}
diff --git a/tests/all/debug/satisfy_memory_import.wat b/tests/all/debug/satisfy_memory_import.wat
new file mode 100644
index 000000000..ea6f28c5e
--- /dev/null
+++ b/tests/all/debug/satisfy_memory_import.wat
@@ -0,0 +1,3 @@
+(module
+  (memory (export "memory") 100)
+)