Oracle® Solaris Studio 12.4: パフォーマンスアナライザ

印刷ビューの終了

更新: 2015 年 1 月
 
 

コンパイラ生成の本体関数

関数内のループまたは並列化ディレクティブが指定された領域を並列化する場合、コンパイラは、元のソースコードには含まれていない新しい本体関数を作成します。こうした関数については、OpenMP実行の概要 で説明しています。

コンパイラは、並列構造の種類、構造が抽出された元の関数の名前、構造の元のソース内の先頭の行番号、および並列構造のシーケンス番数をエンコードする本体関数に符号化された名前を割り当てます。これらの符号化された名前は、マイクロタスクライブラリのリリースごとに異なりますが、より分かりやすい名前に復号化されて表示されます。

次の例は、マシンモードで関数リストに表示される一般的なコンパイラ生成の本体関数を示しています。

7.415      14.860      psec_ -- OMP sections from line 9 [_$s1A9.psec_]
3.873       3.903      craydo_ -- MP doall from line 10 [_$d1A10.craydo_]

これらの例では、構造が抽出された元の関数の名前が最初に示され、次に並列構造の種類、並列構造の行番号、コンパイラ生成の本体関数の符号化された名前が角括弧で示されます。 同様に、逆アセンブリコード内にも特殊なインデックス行が生成されます。

0.       0.            <Function: psec_ -- OMP sections from line 9 [_$s1A9.psec_]>
0.       7.445         [24]    1d8cc:  save        %sp, -168, %sp
0.       0.            [24]    1d8d0:  ld          [%i0], %g1
0.       0.            [24]    1d8d4:  tst         %i1
0.       0.            <Function: craydo_ -- MP doall from line 10 [_$d1A10.craydo_]>
0.       0.030         [ ?]    197e8:  save        %sp, -128, %sp
0.       0.            [ ?]    197ec:  ld          [%i0 + 20], %i5
0.       0.            [ ?]    197f0:  st          %i1, [%sp + 112]
0.       0.            [ ?]    197f4:  ld          [%i5], %i3

Cray のディレクティブでは、関数はソースコード行番号に関連付けされていない可能性があります。このような場合、行番号の代わりに [ ?] が表示されます。注釈付きソースコードにインデックス行が表示される場合は、次の例に示すように、インデックス行は行番号なしで命令を示します。

                     9. c$mic  doall shared(a,b,c,n) private(i,j,k)
                  
                   Loop below fused with loop on line 23
                   Loop below not parallelized because autoparallelization 
                     is not enabled
                   Loop below autoparallelized
                   Loop below interchanged with loop on line 12
                   Loop below interchanged with loop on line 12
3.873     3.903         <Function: craydo_ -- MP doall from line 10 [_$d1A10.craydo_],
                      instructions without line numbers>
0.        3.903     10.            do i = 2, n-1

注 -  インデックス行やコンパイラのコメント行は、実際の表示では折り返されません。