リンク時最適化(LTO)

Note

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

概要

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

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

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

使い方

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

Note

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


制限事項

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