XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


|プロシージャー間分析 (-qipa)

|プロシージャー間分析 (IPA) を使用すると、コンパイラーは異なるファイルにまたがった最適化を行うことが |でき (全プログラム分析)、有効なパフォーマンス向上をもたらします。 |プロシージャー間分析はコンパイル・ステップでのみ、またはコンパイルおよびリンク・ステップで指定できます |(全プログラム ・モード)。 |全プログラム・モードは、最適化の有効範囲をプログラム単位全体に拡張し、実行可能または共用オブジェクトに |することができます。 |全プログラム IPA 分析は、大きなプログラムのコンパイルまたはリンク時に、かなりのメモリー量と時間を消費します。

|IPA は -qipa オプションによって使用可能になります。 |最も一般的に使用されるサブオプションの効果が、下の表に要約されています。


|

一般に使用される -qipa サブオプション
サブオプション 動作
level=0 プログラム区分化と単純プロシージャー間最適化。これは以下から構成されます。
  • 標準ライブラリーの自動認識。
  • 静的にバインドされた変数およびプロシージャーのローカリゼーション。
  • 呼び出し関係に応じたプロシージャーの区分化とレイアウト。 呼び出し類縁性 とも呼ばれます。 (相互に頻繁に呼び出すプロシージャーは、メモリー内で近くに置かれます。)
  • 一部の最適化の有効範囲の拡張 (特にレジスター割り振り)。
level=1 インライン化とグローバル・データ・マッピング。特に以下を行います。
  • プロシージャーのインライン化。
  • 参照類縁性に応じた静的データの区分化とレイアウト。 (ともに頻繁に参照されるデータは、メモリー内で近くに置かれます。)
-qipa が指定されたときは、これがデフォルトになります。
level=2 グローバル別名分析、特殊化、プロシージャー間データ・フロー。
  • 全プログラム別名分析。このレベルには、ポインター参照解除と間接関数呼び出しの明確化と、関数呼び出しの副次作用に関する情報の改良が含まれます。
  • 集約的プロシージャー内最適化。これは、値の番号付け、コード伝播および単純化、条件への、またはループからのコード動作、冗長度の除去のかたちをとります。
  • プロシージャー間定数伝搬、不要コード除去、ポインター分析。
  • プロシージャー特殊化 (クローン作成)。
inline=inline-options インライン化の正確なユーザー制御を提供します。
fine_tuning -qipa= の他の値では、ライブラリー・コードの動作の指定、プログラム区分化の調整、ファイルからのコマンド読み取りなどの能力が提供されます。

|-qipa を最大限に活用する

|あらゆるものを -qipa でコンパイルする必要はありませんが、可能な限り |多くのプログラムにこれを適用するようにしてください。 |以下にいくつかの提案を示します。 |

|関連情報:
| |


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]