コンパイラ組み込み関数を使用すると、以下のようなパフォーマンス上の利点が得られます。
コンパイラ組み込み関数をローレベルのコンパイラ組み込み関数に置き換えると、C または C++ での対応する実装よりも効率が良くなり、命令数とサイクル数の両方が削減されます。コンパイラ組み込み関数を実装するために、コンパイラでは指定されたターゲットアーキテクチャに対して最適な命令のシーケンスが自動的に生成されます。例えば L_add
コンパイラ組み込み関数は、ARM v5TE
アセンブリ言語命令 qadd
に直接対応します。
QADD r0, r0, r1 /* エントリ時に r0 = a、r1 = b と想定 */
コンパイラには、ベースとなっている C および C++ 言語の伝達能力を超えた多くの情報が渡されます。これにより、コンパイラは通常であれば実行不可能な最適化を実行し、命令シーケンスを生成します。
パフォーマンス上のこれらの利点は、リアルタイム処理アプリケーションにとっては重要です。ただし、コンパイラ組み込み関数を使用するとコードの移植性が低下するため、注意して使用する必要があります。