rust/compiler/rustc_transmute
Joshua Liebow-Feeser 4326a44e6f transmutability: Mark edges by ranges, not values
In the `Tree` and `Dfa` representations of a type's layout, store byte
ranges rather than needing to separately store each byte value. This
permits us to, for example, represent a `u8` using a single 0..=255 edge
in the DFA rather than using 256 separate edges.

This leads to drastic performance improvements. For example, on the
author's 2024 MacBook Pro, the time to convert the `Tree` representation
of a `u64` to its equivalent DFA representation drops from ~8.5ms to
~1us, a reduction of ~8,500x. See `bench_dfa_from_tree`.

Similarly, the time to execute a transmutability query from `u64` to
`u64` drops from ~35us to ~1.7us, a reduction of ~20x. See
`bench_transmute`.
2025-04-23 11:45:00 -07:00
..
src transmutability: Mark edges by ranges, not values 2025-04-23 11:45:00 -07:00
Cargo.toml transmutability: Mark edges by ranges, not values 2025-04-23 11:45:00 -07:00