パフォーマンスおよび最適化

追加の機能および機能拡張を、パフォーマンスの調整とアプリケーションの最適化に役立てることができます。

-qpdf の機能拡張

-qpdf オプションの使用は、次の 2 つのステップに分かれています。 まず、-qpdf1 オプションを使用してプログラムをコンパイルします。プログラムを標準的なデータ・セットを使用して実行し、プロファイル作成データを生成します。 次に、-qpdf2 オプションを使用してプログラムをもう一度コンパイルし、プロファイル作成データに基づいてプログラムを最適化します。

以前のリリースでは、ソース・ファイルを変更し、-qpdf2 オプションを使用してコンパイルすると、コンパイルはエラーを起こして停止しました。XL C/C++ for AIX®, V11.1 では、コンパイラーは警告のリストを出しますが、コンパイルは停止しません。これにより、ソース・ファイルの変更後もプロファイル・データを継続して使用できます。

いくつかの新しいサブオプションが -qpdf オプションに追加されています。これらの新しいサブオプションを使用すると、パフォーマンスの改善をより細かく制御でき、-qpdf を拡張して、マルチパス・プロファイル、キャッシュ・ミス・プロファイル、および拡張された値のプロファイルをサポートできます。

新規 -qpdf サブオプションは、以下のとおりです。
level
マルチパス・プロファイル、単一パス・プロファイル、キャッシュ・ミス・プロファイル、値プロファイル、ブロック・カウンター・プロファイル、および呼び出しカウンター・プロファイルをサポートします。-qpdf1=level=0|1|2 を指定してプログラムをコンパイルすると、 結果として得られるアプリケーションによって生成されるプロファイル情報の種類を指定できます。
exename
-o オプションによって指定された出力ファイル名に従って、 生成する PDF ファイルの名前を指定します。
defname
PDF ファイルをデフォルトのファイル名に戻します。

これらのサブオプションについて詳しくは、「XL C/C++ コンパイラー・リファレンス」の『-qpdf1、-qpdf2』を参照してください。

コンパイラーの最適化に関するレポート

リスト作成レポートに対して多数の機能拡張が行われて、 コンパイラーによるコードの最適化方法に関する情報がより多く得られるようになっています。この情報を使用して、コンパイラーの最適化機能からさらに多くの利益を得ることができます。これらの機能拡張されたレポートについて詳しくは、新規診断レポートを参照してください。

パフォーマンス関連のコンパイラー・オプションおよびディレクティブ

次の表の項目は、 新規または変更されたコンパイラー・オプションおよびディレクティブを説明しています。

ここで提示されている情報は、簡単な概要です。 上記のオプション、ディレクティブ、およびその他のパフォーマンス関連のコンパイラー・オプションについて詳しくは、『最適化およびチューニング・オプション』を参照してください。

表 1. パフォーマンス関連のコンパイラー・オプションおよびディレクティブ
-qfuncsect -qfuncsect に追加された拡張機能によって、XL C/C++ プログラムを使用した、関数のリンカー・ガーベッジ・コレクションが改善されます。-qfuncsect は各関数の命令を別個のオブジェクト・ファイル制御セクションまたは CSECT に配置し、これによりプログラム・サイズを縮小できる場合があります。各関数を独自の CSECT に配置すると、リンカーはオブジェクト・ファイル単位ではなく、関数単位でガーベッジ・コレクションを行うことができます。 詳しくは、『-qfuncsect』セクションを参照してください。
-qhot 2 つのサブオプション -qhot=fastmath および -qhot=nofastmath-qhot に追加されました。これにより、数学ルーチンの高速スカラー・バージョンを使用するかデフォルトのバージョンを使用するよう、アプリケーションを調整できます。ネストしたループのループ変換分析用に、-qhot=level=2 も追加されています。詳しくは、『-qhot』セクションを参照してください。
-qinline=level=number デフォルト値の 5 を基準としたインライン化の相対値に関する指示をコンパイラーに伝えるために、-qinline に新しいオプションが追加されました。number は、0 から 10 の間の整数値の範囲であり、使用するインライン化のレベルを示します。詳しくは、「XL C/C++ コンパイラー・リファレンス」の『-qinline』を参照してください。
-qipa

-qipa に加えられる新規機能拡張は、-r -qipa=relink です。-r -qipa=relink を指定することで、IPA 情報を保持したまま、再リンク可能なオブジェクトを生成できます。 これは、すべてのオブジェクト・ファイルを含んでいる実行不能パッケージを作成します。このサブオプションを使用すると、リンクを最後のステージまで延期できます。

-qipa=clonearch は、現在サポートされていません。 -qtune=balanced の使用を検討してください。

詳しくは、『-qipa』セクションを参照してください。

-qpdf -qpdf は、さまざまな PDF の最適化を制御する際に、より柔軟な制御を行えるようにするサブオプションを提供します。 詳しくは、「XL C/C++ コンパイラー・リファレンス」の『-qpdf1、-qpdf2』セクションを参照してください。
-qprefetch コードのパフォーマンスを改善する機会がある場所に、プリフェッチ命令を自動的に挿入するための新規の機能拡張が -qprefetch に追加されています: -qprefetch=assistthread 詳しくは、「XL C/C++ コンパイラー・リファレンス」の『-qprefetch』を参照してください。

パフォーマンス・チューニングおよびプログラム最適化について詳しくは、『アプリケーションの最適化』を参照してください。