Merged
Conversation
Collaborator
Author
|
This is a redo of #420, which was merged prematurely. The error we're seeing is: Looking at the LLVM source code, we see this error was introduced by llvm/llvm-project#89681, which first shipped in LLVM 19.1.0. The added test case says BOLT can't handle computed gotos in position independent code (PIC) (we use PIC since we build with -fPIC). We'll need to add |
Collaborator
Author
|
I diagnosed the BOLT issues and split those out into #463. I'm optimistic this will pass CI now. |
a4d5bad to
50395d7
Compare
50395d7 to
5c1e3a3
Compare
4d7ae4e to
50273e8
Compare
LLVM 19 yields a compile error without these patches. Strictly speaking we may only need the final one. However there are conflicts unless we take all patches to `src/aarch64/sysv.S`. So we just take the 3 of them.
As part of this we also modernize the BOLT apply settings to follow the recommendations at https://llvm.org/devmtg/2024-03/slides/practical-use-of-bolt.pdf. This includes enabling support for loading hot code from a huge page at runtime. This should _just work_ and could result in perf wins via improved iTLB hit rate, etc.
zanieb
approved these changes
Jan 2, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a redo of #420, which was merged prematurely.
With the BOLT changes from #463 merged, LLVM 19 just works.
As part of this we also modernize the BOLT apply settings to follow the recommendations at https://llvm.org/devmtg/2024-03/slides/practical-use-of-bolt.pdf.
This includes enabling support for loading hot code from a huge page at runtime. This should just work and could result in perf wins via improved iTLB hit rate, etc.