cranelift-native flags detection: fix flags on SSE2-only systems.#4231
Merged
Conversation
In bytecodealliance#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 bytecodealliance#3816, because without that, a ton of other things 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 "if detected then set bit" step per feature; the bits are never *cleared*. This PR fixes that.
fee8ed4 to
f050f90
Compare
alexcrichton
approved these changes
Jun 8, 2022
Stebalien
pushed a commit
to filecoin-project/wasmtime
that referenced
this pull request
Jun 9, 2022
…ytecodealliance#4231) In bytecodealliance#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 bytecodealliance#3816, because without that, a ton of other things 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 "if detected then set bit" step per feature; the bits are never *cleared*. This PR fixes that.
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Flagsin #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
Flagsstate all-zeroes again,as a compiler with default flags will again support a default Wasmtime.