| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
This is a redo of #420, which was merged prematurely. The error we're seeing is: BOLT-ERROR: unable to get new address corresponding to input address 0x3dd8f4 in function _PyEval_EvalFrameDefault. Consider adding this function to --skip-funcs=... 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). _PyEval_EvalFrameDefault uses computed gotos if they are available. So LLVM 19.1 just isn't capable of BOLT optimizing _PyEval_EvalFrameDefault. We'll need to add _PyEval_EvalFrameDefault to the BOLT skip list. |
Sorry, something went wrong.
|
I diagnosed the BOLT issues and split those out into #463. I'm optimistic this will pass CI now. |
Sorry, something went wrong.
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.
| Back | FazBrowse Home | New Git URL |
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.