20 releases (6 breaking)
|0.6.1||Feb 16, 2023|
|0.5.1||Dec 6, 2022|
|0.5.0||Nov 29, 2022|
|0.3.1||Jul 20, 2022|
|0.0.0||Dec 3, 2021|
#35 in Memory management
223,016 downloads per month
Used in 130 crates (2 directly)
regalloc2: another register allocator
This is a register allocator that started life as, and is about 50% still, a port of IonMonkey's backtracking register allocator to Rust. In many regards, it has been generalized, optimized, and improved since the initial port, and now supports both SSA and non-SSA use-cases. (However, non-SSA should be considered deprecated; we want to move to SSA-only in the future, to enable some performance improvements. See #4.)
In addition, it contains substantial amounts of testing infrastructure (fuzzing harnesses and checkers) that does not exist in the original IonMonkey allocator.
See the design overview for (much!) more detail on how the allocator works.
This crate is licensed under the Apache 2.0 License with LLVM
Exception. This license text can be found in the file
Parts of the code are derived from regalloc.rs: in particular,
src/domtree.rs. This crate has the same license
as regalloc.rs, so the license on these files does not differ.