-
Notifications
You must be signed in to change notification settings - Fork 674
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
wasm2c SIMD final approach checklist #2224
Comments
This is fine by me, and from the Debian side it would be nice to have a switch to easily use an installed copy of SIMDe instead of the bundled amalgated version. |
Sounds reasonable... maybe |
Oh, I was thinking at compile time of wasm2c output one would use |
After attempting it, I'm realizing that pasting the simde header into the wasm2c generated code is going to be painful because:
Even if I try to split out the v128 definition into its own header, it still ends up pulling in about 8,000 lines because it wants simde-common.h which wants a bunch of stuff. I'm not seeing an easy way to get simde_v128 robustly without thousands of lines. And I don't really want wasm2c to be pasting all that into a generated .h file. :-( Maaaybe the better path forward is really just to have an |
Seems reasonable. Based on the above, I suspect us taking ownership of amalgamating simd is going to lead to a bunch of work. Would be happy to include it as part of the output, but it would probably be easier to leave their file structure as is. |
Merged in WebAssembly/website#334 |
simd-everywhere has just merged fixes to pass the Wasm testsuite (simd-everywhere/simde#1010), so I think we're close to being able to close this out, cut a release, and check the box on webassembly.org. This will also be the first time in a while that wasm2c is passing 100% of the current Wasm core testsuite (which we should enjoy until tail-calls get merged).
Here's my thinking/proposal on next steps to get there:
Maybe controversial: When SIMD is being used, include the simde header in the generated code (like we do with the scalar operations) so the user doesn't need to have a compatible dev repo of SIMDe in their include path to compile the wasm2c output.Create the "amalgamated" simd128.h header along with the other source templatesCheck in the "amalgamated" header as a prebuilt file to keep Firefox and others happy (similar to wasm2c: Generate and checkin prebuilt source code in source folder #2193)?#include <simde/wasm/simd128>
instead.#include
should be in the header file or only the C file (avoid pulling all of SIMDe simd128.h into the embedder's namespace unless necessary)@wrv @sbc100 @shravanrn wdyt?
The text was updated successfully, but these errors were encountered: