リンク時最適化(LTO)

Note

SOLID 3.3.0 以降で使用できます。

概要

LTOでは、リンク時に最適化を行うことで、モジュール間をまたがった解析を基に最適化を行うことが可能になります。 そのため、コンパイル単位(ソースファイル単位)の解析に基づいたコンパイル時最適化と比較して、パフォーマンスの向上やコードサイズの減少が期待できます。

一般的に、大規模なソフトウェアに対してリンク時最適化を行う場合、非常に多くのメモリ資源と時間を消費する傾向があるため、 開発PCのスペックによっては、メモリ不足やビルド時間の大幅な増加が問題となる可能性があります。この問題を緩和するため、 Clang/LLVMでは、ThinLTO と呼ばれる、メモリや計算リソース消費の増加を抑えながらパフォーマンスの向上も期待できる、 バランスの取れたリンク時最適化の手法をサポートしています。

SOLIDのツールチェーンでは、この ThinLTO を推奨しており、LTOのデフォルトに設定しています。
ThinLTO の詳細は、 ThinLTO: Scalable and Incremental LTO を参照してください。

使い方

プロジェクトのプロパティ ‣ プログラムの最適化 ‣ リンク時最適化 から選択してください。推奨は ThinLTO です。

Note

リンク時最適化を有効にすると、自動的にlldリンカが使用されるようになります。


制限事項

アプリケーション プロジェクト内のコードは最適化されません。