Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

3.4.46 –inline=[%auto][[,][no%]f1,…[no%]fn]

指定のルーチンのインライン化を有効または無効にします。

関数およびサブルーチン名のコンマ区切りのリストに指定されたユーザー作成のルーチンをインライン化するようオプティマイザに要求します。ルーチン名に no% という接頭辞を付けると、そのルーチンのインライン化が無効になります。

インライン化とは最適化の手法の 1 つで、CALLや関数呼び出しなどの副プログラムの引用を、実際の副プログラムコードに効果的に置き換えます。インライン機能を有効にすると、オプティマイザが効率的なコードを生成できる機会が増えます。

%auto を指定すると、最適化レベル -O4 または -O5 での自動インライン化が有効になります。-inline で明示的なインライン化が指定されている場合、通常、これらの最適化レベルでの自動インライン化は無効になります。

関数や %auto を指定せずに -xinline= を指定した場合、ソースファイル中のルーチンはいずれもインライン化されません。

例: ルーチン xbarzbarvpoint をインライン化します。

demo% f95 -O3 -inline=xbar,zbar,vpoint *.f

このオプションを使用するための条件は次のとおりです。ただし、条件が満たされていなくても、警告メッセージは出力されません。

  • 最適化レベルが -O3 以上に設定されている。

  • ルーチンのソースがコンパイルされているファイル中にある。ただし、-xipo または -xcrossfile が指定されている場合を除く。

  • コンパイラは、実際にインライン化した結果が安全で効果があるかどうかを判断する。

-inline-O4 とともに指定すると、コンパイラが通常実行する自動インライン化機能が使用できなくなります (%auto も指定した場合は除く)。なお、-O4 を指定すると、コンパイラは通常、ユーザー作成の適切なサブルーチンや関数をすべてインライン化しようとします。-O4-inline を追加すると、オプティマイザはリスト中にあるルーチンに限ってインライン化を行うため、実際にはパフォーマンスが低下します。この場合、%auto サブオプションを使用して、-O4 および -O5 で自動インライン化を有効にします。

demo% f95 -O4 -inline=%auto,no%zpoint *.f

前述の例では、-O4 の自動インライン化を有効にしながら、コンパイラが試みる zpoint() ルーチンのインライン化を無効にしています。