サブオプション NOINLINE は、プロシージャーと開始ブロックがインライン化されないように指示します。
インライン化は、最適化を指定するときにだけ発生します。
ユーザー・コードをインライン化すると、関数呼び出しとリンケージのオーバーヘッドが除去され、関数のコードが最適化プログラムに公開されて、結果としてコード・パフォーマンスが向上します。インライン化は、関数のオーバーヘッドが無視できるようなものではないとき、例えば、関数がネストされたループ内で呼び出されるときなどに、最高の結果をもたらします。また、インライン化は、インライン化された関数によってさらに最適化の機会が与えられるとき、例えば、定数引数が使われるときなどにも、有益です。
ネストされていない多くのプロシージャーが含まれたプログラムの場合は、次のようになります。
インライン化を使う場合は、スタック・スペースを拡大する必要があります。関数が呼び出されると、そのローカル・ストレージが呼び出し時に割り振られ、呼び出し関数に戻るときに解放されます。その関数がインライン化されると、そのストレージは、それを呼び出す関数に入ったときに 割り振られ、呼び出し関数が終了するまで解放されません。インライン化した関数のローカル・ストレージ用に、十分なスタック・スペースがあることを確認してください。