-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make -msse explicitly require -msimd128 #11312
Conversation
Passing -msse without -msimd128 doesn't make sense anyway, because the SSE intrinsics glue will fail to compile when trying to call the WASM SIMD intrinsics. More importantly, this unbreaks projects that test for -msse in a configure check, not expecting it to A) target an unstable version of the WASM spec; and B) fail to actually compile the SSE code.
Note that there's one quirk to this: generally if you try to pass flags like
I consider this to be poor behavior on clang's part, but if you want to be consistent with it, then it probably makes sense to throw a non-fatal warning here instead, too (and not define |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the one hand it would be nice if -sse
implied -msimd128
so users didn't have to pass both, but on the other hand I definitely see the benefit of not allowing configuration scripts to silently target a non-standard feature. Maybe in the future once SIMD support is widespread we can make -sse
imply -msimd128
.
I would also want to hear any comments from @juj before merging.
@@ -26,7 +26,6 @@ Current Trunk | |||
- Removed obsolete SIMD.js support (-s SIMD=1). Use -msimd128 to target Wasm | |||
SIMD. (#11180) | |||
- Add warning about fastcomp deprecation (can be disabled via `-Wno-fastcomp`). | |||
- Removed obsolete SIMD.js support (-s SIMD=1). Use -msimd128 to target Wasm SIMD. (#11180) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why remove this line? I think this is still relevant.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a removal of a duplicate. See 2 lines above.
This is not the right way to fix In the "should emcc target SSE with -msse" conversation, it is an argument that one cannot win. I don't mind whichever route we go, willing to accommodate whoever yells the loudest. |
I don't think this is about whoever yells the loudest? (maybe that's a joke I don't get?) Let's work together to fix this properly. Is that link to another PR? (From the commit link it's hard to tell, and so I'm not sure if there's already discussion about it.) It would be good to resolve this soon as this blocks tagging a new version (since as @Akaricchi pointed out, the current status on master can break existing projects). |
That commit seems to be a part of #11290 |
Thanks @Akaricchi (is there a way I could have seen that from the github UI? maybe I'm missing something obvious...) Ok, looks like that PR also errors if I don't have a strong opinion between them myself. But please let's work to agree on one of them, so we can unblock tagging a new release. |
Nope. I just went looking for a PR that has the SSE3 stuff to find it.
The solution in that PR is fine. But it also contains a new feature (SSE3/SSSE3 support). If you're fine with blocking the release on it, then feel free to close this PR. Alternatively, I can rebase and implement an equivalent just for the |
Thanks @Akaricchi , I see. Ok, looks like the other PR has been merged meanwhile, so I think we are good and can close this. |
Passing -msse without -msimd128 doesn't make sense anyway, because the SSE intrinsics glue will fail to compile when trying to call the WASM SIMD intrinsics.
More importantly, this unbreaks projects that test for -msse in a configure check, not expecting it to A) target an unstable version of the WASM spec; and B) fail to actually compile the SSE code.