xtb icon indicating copy to clipboard operation
xtb copied to clipboard

Provide an option for Link-Time Optimizations

Open toxtran opened this issue 1 year ago • 1 comments

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!

toxtran avatar Nov 27 '24 10:11 toxtran

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

awvwgk avatar Nov 27 '24 10:11 awvwgk