最適化レポートの制御方法

ループの自動ベクトル化や自動並列化がどのように行われたかはインテルコンパイラーの最適化レポートオプション  (Windows: /Qopt-report、Linux: -qopt-report) で出力されるファイルから確認することができますが、ソースコードが長い場合にはレポートも大量に出力されてしまうため、目的のコード行の情報を見つけるのが大変です。

そのような場合、最適化レポート対象を指定するオプションを使用することで、特定の関数やサブルーチン、ファイル、関数、行番号のみの最適化レポートを出力するように制限をかけることができます。

 

Windows Linux 概要
/Qopt-report-routine: “substring” -qopt-report-routine= “substring” “substring” (部分文字列) を含む関数やサブルーチンのみをレポートします。 デフォルトでは、すべての関数とサブルーチンがレポートされます。
/Qopt-report-filter:“string” -qopt-report-filter=“string” “string” (文字列) で指定したファイル、関数、サブルーチン、行番号の範囲のみ レポートします。例: “myfile,myfun,line1-line2”

 

例えば関数名 func() のみの最適化レポートを出力させる場合には、Windows: /Qopt-report-routine:func、Linux: -qopt-report-routine=func を指定することで、func() に関する情報のみを出力させることができるようになります。

同様に main.c の 30~50行目のみの情報を出力させたい場合には、Windows: /Qopt-report-filter:main.c,30-50、Linux: -qopt-report-filter=main.c,30-50 で制御することができます。