C++ · Avançado · Inglês · Técnico
link time optimization
Otimização feita na etapa de link, em que o compilador enxerga todos os arquivos objeto juntos e pode inlinar e eliminar código entre unidades de tradução. Ativa-se com -flto.
Onde usar
Usada em builds de release para ganhar desempenho e reduzir o binário sem mexer no código, ao custo de um link mais lento. No CMake, a propriedade INTERPROCEDURAL_OPTIMIZATION liga o recurso.
Em código
g++ -O2 -flto a.cpp b.cpp -o app
# no CMake:
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)Exemplos
Turn on LTO for the release build.
Ative o LTO no build de release.
LTO can inline across translation units.
O LTO consegue inlinar entre translation units.
Cuidado
Todos os objetos e bibliotecas estáticas precisam ser compilados com -flto; misturar com e sem LTO pode perder otimização ou dar erro de link.
Sinônimos
LTO