As a workaround to their stabilization in the standard library remaining perma-open,
this crate provides the cold_path, likely, and unlikely hints
built on the #[cold] annotation as copied and pasted from the standard library source.
MIT or Apache-2.0 (since code was copied from the standard library)
There are other pre-existing crates for this purpose, but they use different implementation patterns, and I tested this pattern already.
I saw a case where
if cond1 {
if cond2 {
// ..
break;
}
}
cold_path();seemed to optimize differently than
if likely(cond1) {
if likely(cond2) {
// ..
break;
}
}so it probably makes sense to experiment.