-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Bump LLVM to v18 #54848
Bump LLVM to v18 #54848
Conversation
Bit confused why windows won't start building |
I think there's something broken with the CI setup. CC: @staticfloat |
This fixes the llvmpasses tests diff --git a/test/llvmpasses/pipeline-prints.ll b/test/llvmpasses/pipeline-prints.ll
index babd26c797..ecb7095302 100644
--- a/test/llvmpasses/pipeline-prints.ll
+++ b/test/llvmpasses/pipeline-prints.ll
@@ -298,12 +298,12 @@ attributes #2 = { inaccessiblemem_or_argmemonly }
; COM: Loop simplification makes the exit condition obvious
; AFTERLOOPSIMPLIFICATION: L35.lr.ph:
-; AFTERLOOPSIMPLIFICATION-NEXT: add nuw nsw
+; AFTERLOOPSIMPLIFICATION: add nuw nsw
; COM: Scalar optimization removes the previous add from the preheader
-; AFTERSCALAROPTIMIZATION: L35.preheader:
+; AFTERSCALAROPTIMIZATION: L35.lr.ph:
; AFTERSCALAROPTIMIZATION-NOT: add nuw nsw
-; AFTERSCALAROPTIMIZATION-NEXT: br label %L35
+; AFTERSCALAROPTIMIZATION: br label %L35
; COM: Vectorization does stuff
; AFTERVECTORIZATION: vector.body |
The windows build is segfaulting in
|
Was libllvm_jll updated to 18.1.7+2? That includes llvm/llvm-project#88172 which should fix WIndows issues according to JuliaLang/llvm-project#30 (comment). |
This doesn't have the new LLVM build yet. I was fixing the embedding thing mostly |
Oops, 64 bit windows builds on the branch with head Zentrik/llvm-project@b557165 not with JuliaLang/llvm-project#30. EDIT: These are the changes, JuliaLang/llvm-project@julia-release/18.x...Zentrik:llvm-project:windows-fix3. I just reverted a bunch of commits. |
Do we know which one broke it? |
I have no clue. |
Looks like Zentrik/llvm-project@5d8cd98 is sufficient to get llvm 18 building on 64 bit windows (applied to https://github.com/JuliaLang/llvm-project/releases/tag/julia-18.1.7-1). The pr introducing the change, llvm/llvm-project#73037 suggests that the pr could cause trouble if we are assuming/hardcoding '.text'. |
What is segfaulting here? Because I don't see how that breaks stuff. We just register functions with the JIT |
This assertion triggers on a .ltext section Line 868 in 0ef2bb6
|
But if we remove the assertion (it seems slightly weird anyway) |
I didn't look into the segfaults at all so no idea. Pretty sure removing the assertion will just lead to another one being triggered, I recall at some point having https://github.com/llvm/llvm-project/blob/73447a3302541c343525570222b318e7f94f9402/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp#L299-L301 assert though I don't remember how I got to that point. |
…e public julia.h header. That stops us having to either vendor or cache the result of llvm-version.h
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
Benchmarks lgtm assuming the regressions in scalar and collections on the order of ns are noise. An average .5% perf improvement excluding those. |
I ran locally some benchmarks on
and latest nightly
|
is the generated code similar? |
The package evaluation job you requested has completed - possible new issues were detected. |
I suspect the two packages failing due to invalid IR generated is due to llvm/llvm-project#63984. |
The |
The unoptimized LLVM IR looks the same to me, here's the optimized IR with LLVM 18 https://gist.github.com/Zentrik/b49a9d5b67dcfaae7b420ef8ed28df03 and on 0fd1f04 https://gist.github.com/Zentrik/e42698cb8db60932790f4f3657d35efb. The main difference seems to be a error branch isn't optimised out. |
Congratulations! Awesome work everyone :) |
Co-authored-by: Gabriel Baraldi <[email protected]>
No description provided.