cranelift-native flags detection: fix flags on SSE2-only systems. #4231
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #4224 we saw that an SSE2-only x86-64 system somehow was still
detecting SSE3/SSSE3/SSE4.1/SSE4.2. It turns out that we enabled these
in the baseline
Flags
in #3816, because without that, a ton of otherthings break: default flags no longer produce a compiler backend that
works with default Wasmtime settings. However the logic to set them when
detected (via
CPUID
-using feature-test macros) only does an "ifdetected then set bit" step per feature; the bits are never cleared.
This PR fixes that.
This should be relatively temporary: once we fix #3810, then we can
remove this hack by making the default
Flags
state all-zeroes again,as a compiler with default flags will again support a default Wasmtime.