Skip to content
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

Provide an option for Link-Time Optimizations #1141

Open
toxtran opened this issue Nov 27, 2024 · 1 comment
Open

Provide an option for Link-Time Optimizations #1141

toxtran opened this issue Nov 27, 2024 · 1 comment
Labels
build Build system related issues (OS, compilers, meson)

Comments

@toxtran
Copy link

toxtran commented Nov 27, 2024

Hi!

I noticed that in the CMakeLists.txt file Interprocedural Optimization (IPO, or Link-Lime Optimization (LTO)) is not presented for the project. I suggest to provide an option to enable it on since it will reduce the binary size (always a good thing to have) and will likely improve the application's performance a bit. If you want to read a bit more about LTO, I can recommend starting from from this (GCC) and this (LLVM). CMake can determine LTO support with the check_ipo_support.

In the future, users will be able to choose do they want to use LTO (and get benefits from it) or not.

Note that in case of different compilers for different languages LTO can be unavailalable.

As I can see, for old Intel compiler IPO is enabled in single files for meson builds:
https://github.com/grimme-lab/xtb/blob/99b35832c0bc16e6b6cdb12cd1a55f8da1a80216/meson/meson.build#L45-#L47

Thank you!

@awvwgk
Copy link
Member

awvwgk commented Nov 27, 2024

This should already be available via the -Db_lto=true option (meson only).

@awvwgk awvwgk added the build Build system related issues (OS, compilers, meson) label Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Build system related issues (OS, compilers, meson)
Projects
None yet
Development

No branches or pull requests

2 participants