フィードバック最適化コンパイルで、アウトライン関数が作成されることがあります。これらは、「ソース」タブと「逆アセンブリ」タブで、特別なインデックス行として表示されます。「ソース」タブでは、注釈は、アウトライン関数に変換されたコードブロックに表示されます。
Function binsearchmod inlined from source file ptralias2.c into the
0. 0 . 58. if( binsearchmod( asize, &element ) ) {
0.240 0.240 59. if( key != (element << 1) ) {
0. 0. 60. error |= BINSEARCHMODPOSTESTFAILED;
<関数: main -- 行 60 [_$o1B60.main] からのアウトラインコード>
0.040 0.040 [ 61] break;
0. 0. 62. }
0. 0. 63. }
|
「逆アセンブリ」タブでは、アウトライン関数は通常、ファイルの末尾に表示されます。
<関数: main -- 行 85 [_$o1D85.main] からのアウトラインコード>
0. 0. [ 85] 100001034: sethi %hi(0x100000), %i5
0. 0. [ 86] 100001038: bset 4, %i3
0. 0. [ 85] 10000103c: or %i5, 1, %l7
0. 0. [ 85] 100001040: sllx %l7, 12, %l5
0. 0. [ 85] 100001044: call printf ! 0x100101300
0. 0. [ 85] 100001048: add %l5, 336, %o0
0. 0. [ 90] 10000104c: cmp %i3, 0
0. 0. [ 20] 100001050: ba,a 0x1000010b4
<関数: main -- 行 46 [_$o1A46.main] からのアウトラインコード>
0. 0. [ 46] 100001054: mov 1, %i3
0. 0. [ 47] 100001058: ba 0x100001090
0. 0. [ 56] 10000105c: clr [%i2]
<関数: main -- 行 60 [_$o1B60.main] からのアウトラインコード>
0. 0. [ 60] 100001060: bset 2, %i3
0. 0. [ 61] 100001064: ba 0x10000109c
0. 0. [ 74] 100001068: mov 1, %o3
|
アウトライン関数の名前は角括弧内に表示され、コードの取り出し元関数の名前や、ソースコード内のセクションの先頭の行番号を含む、アウトライン化したコードのセクションに関する情報をエンコードします。これらの符号化された名前は、リリースごとに異なります。アナライザは、読みやすい関数名を表示します。詳細は、「アウトライン関数」を参照してください。
アプリケーションのパフォーマンスデータの収集中にアウトライン関数が呼び出されると、アナライザは注釈付き逆アセンブリに特別な行を表示して、その関数の包括的メトリックを示します。詳細は、「包括的メトリック」を参照してください。