Skip to content

Commit

Permalink
Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=c…
Browse files Browse the repository at this point in the history
…ompiler-errors

Use `ThinVec` for PredicateObligation storage

~~I noticed while profiling clippy on a project that a large amount of time is being spent allocating `Vec`s for `PredicateObligation`, and the `Vec`s are often quite small. This is an attempt to optimise this by using SmallVec to avoid heap allocations for these common small Vecs.~~

This PR turns all the `Vec<PredicateObligation>` into a single type alias while avoiding referring to `Vec` around it, then swaps the type over to `ThinVec<PredicateObligation>` and fixes the fallout. This also contains an implementation of `ThinVec::extract_if`, copied from `Vec::extract_if` and currently being upstreamed to Gankra/thin-vec#66.

This leads to a small (0.2-0.7%) performance gain in the latest perf run.
  • Loading branch information
bors committed Oct 16, 2024
2 parents ba7ec44 + ec6a41b commit 91763f2
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit 91763f2

Please sign in to comment.