LTO - AshokBhat/notes GitHub Wiki

LTO (Link Time Optimization)

  • Advantages - Reduced binary size and higher performance.
  • Disadvantages - Longer link time (even incremental), more memory usage

Usage

  • Linux kernel - Starting Linux 5.12, Clang LTO-optimized kernel builds are enabled.
  • RHEL - Starting RHEL 9, LTO is enabled by default in userspace.
  • Android - Starting in 2018, Google Pixel devices run major kernel versions with LTO+CFI.
  • Microsoft Windows heavily utilizes both LTO and PGO

Also known as

  • LTCG, WPA/WPO/IPA

ThinLTO

Usage

  • Google Chrome team uses ThinLTO on MacOS (running on Apple hardware) and Windows builds.

See also