-
Notifications
You must be signed in to change notification settings - Fork 553
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
[BOLT] Add builder #8391
[BOLT] Add builder #8391
Conversation
Tested locally with x86_64-linux-gnu-cxx11.
In the discord, I see someone built on FreeBSD and seems to build on windows here: llvm/llvm-project#73085. I haven't tested locally, as this takes hours to build for me. Might need a patch for windows: llvm/llvm-project#73006.
Not sure why the code in common.jl uses `-gt` so much.
Should LLVM_full@14.0.5, LLVM_full_assert@14.0.5 be deleted? |
Seems like you cannot build on it and it shouldn't even exist in Yggdrasil.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
I'll probably just restrict to LLVM >= 16 given all the failures. |
It's quite unlikely we're going to rebuild/use anything older than v16. |
Presumably this also prevents it being built on FreeBSD but according to https://reviews.llvm.org/D148742 it's not supported anyways.
FreeBSD fails even with this patch and we've disabled building runtime as it's not supported. So this patch is useless. This reverts commit 9aa1a07.
Feel free to cancel the build if you need to free up some runners. |
Not sure if there's a better approach. I don't know if calling build_tarballs twice will cause problems.
I'm pretty sure a6e33e1 should have fixed the error about not being able to find |
I am very hesitant with taking on extra tools into the core LLVM build. We have enough issues with the current set and getting to LLVM 17 Could the build of BOLT be separated from the core LLVM compiler? |
@Zentrik if you need inspiration for a standalone llvm package you can have a look at https://github.com/JuliaPackaging/Yggdrasil/blob/24010c93241559f44b967496e65782a9d18729f0/L/LLVMOpenMP/build_tarballs.jl, although that's really not different from any other standard package. Only caveat is that my understanding is that nowadays llvm component should always be built out of the (giant) git monorepo, rather than using the individual release tarballs (which at least can be downloaded in a finite time), so Yggdrasil/L/LLVMOpenMP/build_tarballs.jl Line 10 in 24010c9
|
Yeah if this is not feasible and we have a strong use-case for why then I would also be happy to add it, but we should't be too hastly. Another example would be JuliaLang/julia#52945 or the old RV/Polly integration. First prepare a PR that shows the value on Julia base and then we can add it here, but if this is for a personal experiment the maintenance burden needs be considered. |
Cross compilation for it seems to be broken, llvm/llvm-project#84547.
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.
The resulting tarballs is very large, it's over 400 MB for x86_64 linux and it contains loads of static archives which presumably are unnecessary, and the bin/
directory is full of executables, I thought you only needed llvm-bolt
?
Cuts tarball size from ~400 mb to 32mb. Untarred llvm-bolt and llvm-bolt-heatmap are both 42mb and 99% of size.
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
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.
This is looking good to me now, only a couple of more minor comments. Anyone else wants to have a look?
Might as well, won't be hard to adjust if they are removed at some point.
No description provided.