-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[wasm] resolve llvm versioning in AOT toolchain #49644
Comments
Tagging subscribers to 'arch-wasm': @lewing Issue DetailsRight now mono-aot-cross is built with llvm 9.0.x(+mono patches) from packages produced out of https://github.com/dotnet/llvm-project. Then the bitcode the mono-aot-cross produces is consumed by the llvm12.0.x bundled with emsdk. This currently works because the 9.x vs 12.x bit code we product has remained compatible but we should aim to use the same llvm version across the entire toolchain and avoid breakage if that changes. Emscripten uses a fairly stock llvm build now. It looks like the packaging parts happen Since the browser cross compiler doesn't actually need the mono patches one possibility is that we could start producing llvm 12.0.x builds along side the 9.0.x builds in dotnet/llvm-project without forward porting the patches and start using those versions for the browser mono-aot-cross.
|
@steveisok could you please handle this as part of emsdk packaging. |
MonoAOTBundleLLVMOptimizer in mono.proj needs to be false on Browser, then |
#50132 removed llc and opt from the browser cross packages |
I think there is work bumping to llvm11 underway now? |
There is work bumping to LLVM 11 underway now. There's a tracking issue here: #51312 I still need to test patched-LLVM-11 on CI. LLVM 12 (patched or otherwise) should not be much more work to support. If we do build and distribute a vanilla copy of the LLVM 12 static libraries via nuget (???) it should be named something other than "runtime.$(MonoLLVMHostOS)-$(MonoLLVMTargetArchitecture).Microsoft.NETCore.Runtime.Mono.LLVM.Sdk", so that we don't conflate patched-LLVM-12 with vanilla-LLVM-12. |
@lewing @akoeplinger @directhex - do we need anymore work here ? |
@SamMonoRT 11 is a lot better, I'd like to try to come up with a long term plan here but I think we're good for 6, moving to 7 |
@lewing, succeeded in preparing a long-term plan? |
Mono is at 11 still, there is work to move to 14.x in #72272 but we've pushed this work to 8 now. |
Fixed in the latest builds |
Right now mono-aot-cross is built with llvm 9.0.x(+mono patches) from packages produced out of https://github.com/dotnet/llvm-project. Then the bitcode the mono-aot-cross produces is consumed by the llvm12.0.x bundled with emsdk. This currently works because the 9.x vs 12.x bit code we product has remained compatible but we should aim to use the same llvm version across the entire toolchain and avoid breakage if that changes.
Emscripten uses a fairly stock llvm build now. It looks like the packaging parts happen
as part of https://github.com/WebAssembly/waterfall/blob/master/src/build.py
But it doesn't look like there is enough there to compile the cross compilers.
Since the browser cross compiler doesn't actually need the mono patches one possibility is that we could start producing llvm 12.0.x builds along side the 9.0.x builds in dotnet/llvm-project without forward porting the patches and start using those versions for the browser mono-aot-cross.
The text was updated successfully, but these errors were encountered: