Only compile Fallback level on targets without a better baseline - #320
Conversation
DJMcNab
left a comment
There was a problem hiding this comment.
Thanks!
This does leave me with a niggling doubt about whether we should return to doing this more generally (e.g. separating the "proof types" used for kernel from the Simd impls to improve build time). But I suspect the cases where that would actually come up are so niche it's not worth worrying about in practise.
|
|
||
| - The `new_unchecked()` function on SIMD level tokens such as `Avx2` has been renamed to `assume_supported()` and is now safe to call from contexts that already contain the appropriate `#[target_feature]` annotations. Functions without such annotations can still call `assume_supported()` with an `unsafe` block. ([#293][] by [@Shnatsel][]) | ||
| - On x86_64 targets with static SSE2 support, `Level::baseline()` now returns `Sse2` instead of `Fallback`. ([#270][] by [@Shnatsel][]) | ||
| - The scalar `Fallback` backend and `Level::Fallback` variant are no longer compiled when the target has a better ambient SIMD baseline (e.g. SSE2 on x86, NEON on Aarch64). The `force_support_fallback` feature continues to make them available for testing. `disable_dispatch_sse2` no longer disables SSE2 if it is the baseline level. |
There was a problem hiding this comment.
This should have the pr number reference (by the way, I've been working on tooling to make our changelog management better - see https://github.com/DJMcNab/release_eng/blob/main/gazeto/README.md - which I'd appreciate if you had any feedback on).
There was a problem hiding this comment.
I feel my current workflow of having an LLM go through the git history and write a draft, then editing the PR summaries manually works well. See #314 for what the result looks like.
And frankly I don't want to be beholden to even more inflexible tools than this repository already is.
I thought about this and came to the same conclusion. There is however a related use case: when a |
It emitted no LLVM IR, but it was still being type- and borrow-checked despite never being called.
When applied on top of #318 reduces x86 clean build time by 0.2s (from 2.15s to 1.95s) and Aarch64 build time by 0.3s (from 1.25s to 0.95s).
Fixes #316
There are two instances of this cfg, which is as low as I could get it. Could be brought down to one with a build script but that would negate the build time gains.