-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
gh-101525: [BOLT] Add GCC's LTO-generated function clones, with computed gotos, to BOLT skip list #139840
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
Conversation
|
cc @corona10 |
|
I will try to review this PR until end of this week. |
…ed gotos, to BOLT skip list When building with --with-lto, --enable-bolt and --enable-shared, GCC creates optimized function clones with the suffix .lto_priv.0. The sre_ucs*_match functions use computed gotos, which BOLT cannot optimize, so their .lto_priv.0 clones must be skipped as well. Static builds and Clang's LTO implementation are not affected.
corona10
left a comment
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.
LGTM!
But since LLVM 20 has been released and llvm/llvm-project#120267
is merged, it’s probably a good time to test without using -skip-funcs :)
cc @zanieb
I did some testing there with GCC. #140250 works, unless the linker uses -pack-relative-relocs, then those functions fail again. |
|
Would it make sense to backport this to previous versions, as it's a bugfix? |
Yes, I think so. Do you agree to backport @corona10? |
… computed gotos, to BOLT skip list (pythongh-139840)
When building with --with-lto, --enable-bolt and --enable-shared, GCC creates optimized function clones with the suffix .lto_priv.0.
The sre_ucs*_match functions use computed gotos, which BOLT cannot optimize, so their .lto_priv.0 clones must be skipped as well.
Static builds and Clang's LTO implementation are not affected.