|
Revision tags: dev, v36.0.9, v44.0.1, v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7, v43.0.0, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6, v41.0.3, v41.0.2, v41.0.1, v36.0.5, v40.0.3 |
|
| #
8325e1ec |
| 23-Jan-2026 |
Alex Crichton <[email protected]> |
Fold the `wasmtime-error` crate into `wasmtime-core` (#12418)
Similar to #12398 and #12407 the idea is that all our dependency-free (mostly) data structures and foundational data-types are in one lo
Fold the `wasmtime-error` crate into `wasmtime-core` (#12418)
Similar to #12398 and #12407 the idea is that all our dependency-free (mostly) data structures and foundational data-types are in one location to centralize testing, ergonomics, documentation, idioms, etc.
show more ...
|
| #
413b95c1 |
| 23-Jan-2026 |
Nick Fitzgerald <[email protected]> |
Define a fallible-allocation-only version of `EntitySet` in `wasmtime-environ` (#12384)
* Add methods for fallible allocation to `cranelift_entity::EntitySet`
Part of https://github.com/bytecodeall
Define a fallible-allocation-only version of `EntitySet` in `wasmtime-environ` (#12384)
* Add methods for fallible allocation to `cranelift_entity::EntitySet`
Part of https://github.com/bytecodealliance/wasmtime/issues/12069
* Define a fallible-allocation-only version of `EntitySet` in `wasmtime-environ`
Part of https://github.com/bytecodealliance/wasmtime/issues/12069
show more ...
|
| #
630ffcc3 |
| 23-Jan-2026 |
Nick Fitzgerald <[email protected]> |
Add methods for fallible allocation to `cranelift_entity::EntitySet` (#12383)
Part of https://github.com/bytecodealliance/wasmtime/issues/12069
|
|
Revision tags: v41.0.0, v36.0.4, v39.0.2, v40.0.2, v40.0.1, v40.0.0, v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5, v38.0.3, v38.0.2, v38.0.1, v37.0.2, v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0 |
|
| #
b2a25c38 |
| 08-Aug-2025 |
Alex Crichton <[email protected]> |
Enable the `clippy::multiple_bound_locations` lint (#11404)
This opts-in to a new Clippy lint which is intended to help clean up historical refactorings to ensure that bounds on type parameters are
Enable the `clippy::multiple_bound_locations` lint (#11404)
This opts-in to a new Clippy lint which is intended to help clean up historical refactorings to ensure that bounds on type parameters are either in the type parameter declaration or in a `where` clause, but not both.
show more ...
|
|
Revision tags: v35.0.0, v24.0.4, v33.0.2, v34.0.2 |
|
| #
3da19a92 |
| 15-Jul-2025 |
Nick Fitzgerald <[email protected]> |
Implement Tarjan's strongly-connected components algorithm (#11239)
* Implement Tarjan's strongly-connected components algorithm
This commit implements [Tarjan's algorithm] for finding strongly-con
Implement Tarjan's strongly-connected components algorithm (#11239)
* Implement Tarjan's strongly-connected components algorithm
This commit implements [Tarjan's algorithm] for finding strongly-connected components.
This algorithm takes `O(V+E)` time and uses `O(V+E)` space.
Tarjan's algorithm is usually presented as a recursive algorithm, but we do not trust the input and cannot recurse over it for fear of blowing the stack. Therefore, this implementation is iterative.
This will be used to do bottom-up inlining in Wasmtime's compilation orchestration.
[Tarjan's algorithm]: https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm
* address review feedback
show more ...
|
|
Revision tags: v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0 |
|
| #
8a42768f |
| 06-Jun-2025 |
Alex Crichton <[email protected]> |
Update nightly used in CI (#10957)
A new lint was added to rustc so this updates the nightly used in CI and then additionally fixes the lints that are firing.
|
|
Revision tags: v33.0.0 |
|
| #
90ac295e |
| 19-May-2025 |
Alex Crichton <[email protected]> |
Update Wasmtime to the 2024 Rust Edition (#10806)
* Update Wasmtime to the 2024 Rust Edition
Now that our MSRV supports the 2024 edition it's possible to make this switch. This commit moves Wasmtim
Update Wasmtime to the 2024 Rust Edition (#10806)
* Update Wasmtime to the 2024 Rust Edition
Now that our MSRV supports the 2024 edition it's possible to make this switch. This commit moves Wasmtime to the 2024 Edition to keep up-to-date with Rust idioms and access many of the edition features exclusive to the 2024 edition.
prtest:full
* Reformat with the 2024 edition
show more ...
|
|
Revision tags: v32.0.0 |
|
| #
bf9273a3 |
| 25-Mar-2025 |
Nick Fitzgerald <[email protected]> |
`cranelift-frontend`: Propagate needs-stack-map from variables to values during finalization (#10468)
* cranelift-frontend: Propagate needs-stack-map from variables to values during finalization
Ra
`cranelift-frontend`: Propagate needs-stack-map from variables to values during finalization (#10468)
* cranelift-frontend: Propagate needs-stack-map from variables to values during finalization
Rather than trying to propagate the needs-stack-map bit from variables to values online, while we are building the IR and defining and using variables, wait until the function is being finalized, and then propagate everything all at once. This avoids potential repeated work and is easier to ensure that it is complete and covers all values associated with a variable, since by the time we are finalizing the function, we won't add any new values for a variable that we will need to keep track of and propagate this information to.
This also means that we can remove the `params_added_to_blocks` vector from the SSA side effects structure, since it was only used to online-update the `stack_map_values` set.
* Initialize the env-logger in `#[wasmtime_test]`
* Fix needs-stack-map set iteration
For reasons I do not understand, the `EntitySet::keys` method includes keys that are not in the set, and we have unit tests asserting this bizarre behavior. Very perplexing. So I added a new method to iterate over just the elements of the set.
show more ...
|
| #
79f9e06a |
| 25-Mar-2025 |
Nick Fitzgerald <[email protected]> |
Tiny improvements for `cranelift_entity::EntitySet` (#10469)
* Document return value of `EntitySet::insert`
* Implement a better `Debug` implementation for `EntitySet`
|
|
Revision tags: v31.0.0 |
|
| #
92af690d |
| 10-Mar-2025 |
David Marcin <[email protected]> |
Derive serde on EntitySet when feature is enabled (#10368)
* Derive serde on EntitySet when feature is enabled
* Add cranelift-entity cargo check
|
|
Revision tags: v30.0.2, v30.0.1, v30.0.0, v29.0.1, v29.0.0, v28.0.1, v28.0.0, v27.0.0, v26.0.1, v25.0.3, v24.0.2, v26.0.0, v21.0.2, v22.0.1, v23.0.3, v25.0.2, v24.0.1, v25.0.1, v25.0.0, v24.0.0, v23.0.2 |
|
| #
cb0cac2f |
| 02-Aug-2024 |
Nick Fitzgerald <[email protected]> |
cranelift-entity: Add a method to pre-reserve capacity to `EntitySet` (#9069)
Just exposing functionality that already exists in the underlying bitset implementation.
Will be used in a follow-up pu
cranelift-entity: Add a method to pre-reserve capacity to `EntitySet` (#9069)
Just exposing functionality that already exists in the underlying bitset implementation.
Will be used in a follow-up pull request.
show more ...
|
| #
29d6fcc9 |
| 02-Aug-2024 |
Nick Fitzgerald <[email protected]> |
cranelift-entity: Implement `Extend` for `EntitySet` (#9068)
Co-authored-by: Trevor Elliott <[email protected]>
|
|
Revision tags: v23.0.1, v23.0.0, v22.0.0 |
|
| #
95fee6f4 |
| 18-Jun-2024 |
Nick Fitzgerald <[email protected]> |
`cranelift-entity`: Implement `EntitySet` in terms of `cranelift_bitset::CompoundBitSet` (#8834)
* cranelift-entity: Implement `EntitySet` in terms of `cranelift_bitset::CompoundBitSet`
* Shrink th
`cranelift-entity`: Implement `EntitySet` in terms of `cranelift_bitset::CompoundBitSet` (#8834)
* cranelift-entity: Implement `EntitySet` in terms of `cranelift_bitset::CompoundBitSet`
* Shrink the size of `CompoundBitSet` so we don't perturb vmctx size test expectations
* Update vmctx size test expectations anyways because we shrunk "too much"
* Move `cranelift-bitset` to the front of `CRATES_TO_PUBLISH`
show more ...
|
| #
4705d155 |
| 18-Jun-2024 |
Nick Fitzgerald <[email protected]> |
cranelift-entity: Remove the unused `EntitySet::cardinality` method (#8827)
|
|
Revision tags: v21.0.1, v21.0.0 |
|
| #
0e9121da |
| 16-May-2024 |
FrankReh <[email protected]> |
Fix some typos (#8641)
* occurred
* winch typos
* tests typos
* cli typos
* fuzz typos
* examples typos
* docs typos
* crates/wasmtime typos
* crates/environ typos
* crates/cranelift typos
Fix some typos (#8641)
* occurred
* winch typos
* tests typos
* cli typos
* fuzz typos
* examples typos
* docs typos
* crates/wasmtime typos
* crates/environ typos
* crates/cranelift typos
* crates/test-programs typos
* crates/c-api typos
* crates/cache typos
* crates other typos
* cranelift/codegen/src/isa typos
* cranelift/codegen/src other typos
* cranelift/codegen other typos
* cranelift other typos
* ci js typo
* .github workflows typo
* RELEASES typo
* Fix clang-format documentation line
---------
Co-authored-by: Andrew Brown <[email protected]>
show more ...
|
|
Revision tags: v20.0.2, v20.0.1, v20.0.0, v17.0.3, v19.0.2, v18.0.4, v19.0.1, v19.0.0, v18.0.3, v18.0.2, v17.0.2, v18.0.1, v18.0.0, v17.0.1, v17.0.0, v16.0.0, v15.0.1, v15.0.0, v14.0.4, v14.0.3, v14.0.2, v13.0.1, v14.0.1, v14.0.0, minimum-viable-wasi-proxy-serve, v13.0.0, v12.0.2, v11.0.2, v10.0.2, v12.0.1, v12.0.0, v11.0.1, v11.0.0, v10.0.1, v10.0.0, v9.0.4, v9.0.3, v9.0.2, v9.0.1, v9.0.0, v6.0.2, v7.0.1, v8.0.1, v8.0.0 |
|
| #
59d46c2f |
| 21-Mar-2023 |
uint256_t <[email protected]> |
cranelift-entity: improve `EntitySet::cardinality()` implementation (#6066)
* Simplify 'EntitySet::cardinality()'
* Fix test
|
|
Revision tags: v7.0.0 |
|
| #
b50cf9bb |
| 13-Mar-2023 |
uint256_t <[email protected]> |
cranelift-entity: more efficient `EntitySet` implementation (#5978)
* Use usize intead of u8
* Rename 'byte's to appropriate words
|
|
Revision tags: v6.0.1, v5.0.1, v4.0.1, v6.0.0, v5.0.0, v4.0.0, v3.0.1, v3.0.0, v1.0.2, v2.0.2, v2.0.1, v2.0.0 |
|
| #
77ab99d3 |
| 29-Sep-2022 |
Jamey Sharp <[email protected]> |
cranelift-frontend: SSA-building cleanup (#4984)
* Cleanups to cranelift-frontend SSA construction
* Encode sealed/undef_variables relationship in type
A block can't have any undef_variables i
cranelift-frontend: SSA-building cleanup (#4984)
* Cleanups to cranelift-frontend SSA construction
* Encode sealed/undef_variables relationship in type
A block can't have any undef_variables if it is sealed. It's useful to
make that fact explicit in the types so that any time either value is
used, it's clear that we should think about the other one too.
In addition, encoding this fact in an enum type lets Rust apply an
optimization that reduces the size of SSABlockData by 8 bytes, making it
fit in a 64-byte cache line. I haven't taken the extra step of making
SSABlockData be 64-byte aligned because 1) it doesn't seem to have a
performance impact and b) doing so makes other structures quite a bit
bigger.
* Simplify finish_predecessors_lookup
Using Vec::drain is more concise than a combination of
iter().rev().take() followed by Vec::truncate. And in this case it
doesn't matter what order we examine the results in, because we just
want to know if they're all equal, so we might as well iterate forward
instead of in reverse.
There's no need for the ZeroOneOrMore enum. Instead, there are only two
cases: either we have a single value to use for the variable (possibly
synthesized as a constant zero), or we need to add a block parameter in
every predecessor.
Pre-filtering the results iterator to eliminate the sentinel makes it
easy to identify how many distinct definitions this variable has.
iter.next() indicates if there are any definitions at all, and then
iter.all() is a clear way to express that we want to know if the
remaining definitions are the same as the first one.
* Simplify append_jump_argument
* Avoid assigning default() into SecondaryMap
This eliminates some redundant reads and writes.
* cranelift-frontend: Construct with default()
This eliminates a bunch of boilerplate in favor of a built in `derive`
macro.
Also I'm deleting an import that had the comment "FIXME: Remove in
edition2021", which we've been using everywhere since April.
* Fix tests
show more ...
|
|
Revision tags: v1.0.1, v1.0.0, v0.40.1, v0.40.0, v0.39.1, v0.38.3, v0.38.2, v0.39.0, v0.38.1, v0.38.0, v0.37.0, v0.36.0, v0.35.3, v0.34.2, v0.35.2, v0.35.1, v0.35.0, v0.33.1, v0.34.1, v0.34.0, v0.33.0, v0.32.1, v0.32.0, v0.31.0, v0.30.0, v0.29.0, v0.28.0, v0.26.1, v0.27.0, v0.26.0, v0.25.0, v0.24.0, v0.23.0, v0.22.1, cranelift-v0.69.0, v0.22.0, v0.21.0, v0.20.0, v0.19.0, v0.18.0, v0.17.0, v0.16.0, v0.15.0, cranelift-v0.62.0, cranelift-v0.61.0, cranelift-v0.60.0, v0.12.0, v0.11.0, v0.10.0 |
|
| #
832666c4 |
| 07-Feb-2020 |
Ryan Hunt <[email protected]> |
Mass rename Ebb and relatives to Block (#1365)
* Manually rename BasicBlock to BlockPredecessor
BasicBlock is a pair of (Ebb, Inst) that is used to represent the
basic block subcomponent of an E
Mass rename Ebb and relatives to Block (#1365)
* Manually rename BasicBlock to BlockPredecessor
BasicBlock is a pair of (Ebb, Inst) that is used to represent the
basic block subcomponent of an Ebb that is a predecessor to an Ebb.
Eventually we will be able to remove this struct, but for now it
makes sense to give it a non-conflicting name so that we can start
to transition Ebb to represent a basic block.
I have not updated any comments that refer to BasicBlock, as
eventually we will remove BlockPredecessor and replace with Block,
which is a basic block, so the comments will become correct.
* Manually rename SSABuilder block types to avoid conflict
SSABuilder has its own Block and BlockData types. These along with
associated identifier will cause conflicts in a later commit, so
they are renamed to be more verbose here.
* Automatically rename 'Ebb' to 'Block' in *.rs
* Automatically rename 'EBB' to 'block' in *.rs
* Automatically rename 'ebb' to 'block' in *.rs
* Automatically rename 'extended basic block' to 'basic block' in *.rs
* Automatically rename 'an basic block' to 'a basic block' in *.rs
* Manually update comment for `Block`
`Block`'s wikipedia article required an update.
* Automatically rename 'an `Block`' to 'a `Block`' in *.rs
* Automatically rename 'extended_basic_block' to 'basic_block' in *.rs
* Automatically rename 'ebb' to 'block' in *.clif
* Manually rename clif constant that contains 'ebb' as substring to avoid conflict
* Automatically rename filecheck uses of 'EBB' to 'BB'
'regex: EBB' -> 'regex: BB'
'$EBB' -> '$BB'
* Automatically rename 'EBB' 'Ebb' to 'block' in *.clif
* Automatically rename 'an block' to 'a block' in *.clif
* Fix broken testcase when function name length increases
Test function names are limited to 16 characters. This causes
the new longer name to be truncated and fail a filecheck test. An
outdated comment was also fixed.
show more ...
|
|
Revision tags: v0.9.0, v0.8.0, v0.6.0, v0.4.0 |
|
| #
9f506692 |
| 24-Oct-2019 |
Peter Huene <[email protected]> |
Fix clippy warnings.
This commit fixes the current set of (stable) clippy warnings in the repo.
|
|
Revision tags: cranelift-v0.46.1, cranelift-v0.46.0, cranelift-v0.45.0 |
|
| #
bb8fa40e |
| 28-Sep-2019 |
bjorn3 <[email protected]> |
Rustfmt
|
| #
a114423d |
| 28-Sep-2019 |
bjorn3 <[email protected]> |
Remove std feature from cranelift-entity
|
|
Revision tags: cranelift-v0.44.0, cranelift-v0.43.1, cranelift-v0.43.0, cranelift-v0.42.0 |
|
| #
947fce19 |
| 31-Aug-2019 |
Erin Power <[email protected]> |
Replaced instances of SparseSet with EntitySet
|
|
Revision tags: cranelift-v0.41.0 |
|
| #
b8fb5244 |
| 25-Aug-2019 |
julian-seward1 <[email protected]> |
Cranelift: implement redundant fill removal on tree-shaped CFG regions. Mozilla bug 1570584. (#906)
|
|
Revision tags: v0.3.0, v0.2.0, cranelift-v0.40.0, cranelift-v0.39.0, cranelift-v0.37.0, cranelift-v0.36.0, cranelift-v0.35.0, cranelift-v0.34.0, cranelift-v0.33.0, cranelift-v0.32.0, cranelift-v0.31.0 |
|
| #
747ad3c4 |
| 28-Jan-2019 |
lazypassion <[email protected]> |
moved crates in lib/ to src/, renamed crates, modified some files' text (#660)
moved crates in lib/ to src/, renamed crates, modified some files' text (#660)
|