History log of /wasmtime-44.0.1/cranelift/entity/src/set.rs (Results 1 – 25 of 25)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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)