mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 00:03:43 +00:00
7a08f84627
Account for things that optimize out in inlining costs This updates the MIR inlining `CostChecker` to have both bonuses and penalties, rather than just penalties. That lets us add bonuses for some things where we want to encourage inlining without risking wrapping into a gigantic cost. For example, `switchInt(const …)` we give an inlining bonus because codegen will actually eliminate the branch (and associated dead blocks) once it's monomorphized, so measuring both sides of the branch gives an unrealistically-high cost to it. Similarly, an `unreachable` terminator gets a small bonus, because whatever branch leads there doesn't actually exist post-codegen. |
||
---|---|---|
.. | ||
benches | ||
src | ||
tests | ||
Cargo.toml |