Skip to content

Avoid the reverse lang-item lookup in sizedness_fast_path [-0.04% avg] - #105

Draft
xmakro wants to merge 1 commit into
perf/base-0809from
perf/rm0809-sizedness
Draft

Avoid the reverse lang-item lookup in sizedness_fast_path [-0.04% avg]#105
xmakro wants to merge 1 commit into
perf/base-0809from
perf/rm0809-sizedness

Conversation

@xmakro

@xmakro xmakro commented Aug 10, 2026

Copy link
Copy Markdown
Owner

The sizedness fast path runs for roughly 60% of all predicates and paid a reverse-hashmap lookup, which hashes the DefId, on each call just to distinguish Sized from MetaSized. Two direct array-indexed lang-item comparisons answer the same question.

Measured alone at head 969b803 (clean from-scratch ThinLTO plus jemalloc stage2 build per side, instructions:u, Check/Debug/Opt across Full/IncrFull/IncrUnchanged/IncrPatched, 551 cells): -0.04% mean, 4 cells improved by at least 0.25% (projection-caching full profiles at -0.26% to -0.28%), 1 cell at +0.31% that is almost certainly noise (issue-46449 opt incr-unchanged, a scenario this code barely runs in). The weakest slice of the old combined branch; it removes real work at zero cost but sits near the noise floor.

The fast path runs for roughly 60% of all predicates and paid a
reverse-hashmap lookup (hashing the DefId) on each call just to
distinguish Sized from MetaSized. Two direct array-indexed lang-item
comparisons answer the same question.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant