Nick Fitzgerald

Results 226 issues of Nick Fitzgerald

We don't keep `VMFuncRef` pointers inside the GC heap, as the GC heap is untrusted, and instead have a side table, and store table IDs in GC objects. We currently...

cranelift:goal:optimize-speed
performance
wasmtime:ref-types

Currently the `TypeRegistry::is_subtype` method requires taking a read lock to access the supertypes arrays that allow for O(1) subtype checking. At the time of writing, this doesn't power the `ref.{test,cast}`...

cranelift:goal:optimize-speed
performance
wasmtime:ref-types

We have a bunch of knobs and associated optimizations and special cases for linear memory bounds checks. We should reuse all that for Wasm GC heaps, letting them be more...

cranelift:goal:optimize-speed
performance
wasmtime:ref-types

We could implement an escape analysis for Wasm GC types to figure out which allocations do not escape their stack frame. Then we can do unboxing/SROA, replacing a struct's fields...

cranelift:goal:optimize-speed
performance
wasmtime:ref-types

We can take advantage of Wasm GC's sound type system to determine which memory accesses are in logically separate regions, feed that into our alias analysis pass, and go to...

cranelift:goal:optimize-speed
performance
wasmtime:ref-types

Hey folks! I've finally got all of Wasm GC implemented for Wasmtime and all spec tests passing.[^1] I also have a sizable backlog of potential optimizations to do. But, of...

This module should be gated behind a `check` cargo feature. It should provide a really simple property-based testing framework for combining `Arbitrary`-based generators with your oracles/property functions that can be...

This lays down the initial infrastructure for support for GC in our fused adapters for the component model. We keep track of whether each lifted/lowered function wants args/results as GC...

wasmtime:api
fuzzing

This is the old simple preopt stuff for some number divided/remaindered by a non-power-of-two constant: * https://github.com/bytecodealliance/wasmtime/blob/465913eb2c91998c99ae9222e47f8e9f9a88a546/cranelift/codegen/src/divconst_magic_numbers.rs#L41-L217 * https://github.com/bytecodealliance/wasmtime/blob/465913eb2c91998c99ae9222e47f8e9f9a88a546/cranelift/codegen/src/simple_preopt.rs#L206-L243 The ISLE + e-graphs mid-end work replaced `simple_preopt`, but never ported...

isle
cranelift:mid-end

[Right now](https://github.com/bytecodealliance/wasmtime/blob/957677c6f50f57430abe06977dbb9c1b839b5b69/crates/environ/src/func_environ.rs#L1272-L1296), to check if for interrupts: * we load the interrupts pointer from the vmctx * we dereference it to get the maybe-interrupted value * we compare that against...

enhancement
wasmtime