3.7.1 変数/関数情報ファイルの出力

-

-lnkopt=-vfinfoオプションを指定すると,最適化リンカが変数/関数情報ファイルを出力します。
-vfinfoオプションについての詳細は,「-VFINFO」を参照してください。

-

最適化リンカは,変数のサイズ,および変数や関数の参照頻度を元にして,コードサイズの削減効果が高い変数や関数を選択し,それらの変数や関数に対して#pragma指令によるsaddr変数やcallt関数の宣言を追加したヘッダ・ファイル(変数/関数情報ファイル)を出力します。
#pragma saddrについては「saddr領域利用(#pragma saddr)」,#pragma calltについては「callt関数(#pragma callt)」を参照してください。

-

以下の変数や関数は,変数/関数情報ファイルの対象にはなりません。
ただし,割り込みハンドラについては,コメントアウトして変数/関数情報ファイルに表示されます。

-

標準ライブラリ関数,ランタイムライブラリ関数

-

ソフトウェア割り込みハンドラ,ハードウェア割り込みハンドラ,RTOS割り込みハンドラ

-

アセンブリ・ソースで定義した変数や関数

-

変数/関数情報ファイルの出力例を以下に示します。

/* RENESAS OPTIMIZING LINKER GENERATED FILE 2014.10.20 */
/*** variable information ***/
(1)           (2)    (3)  (4)
#pragma saddr var1 /* count:10,size:1,near */
(5)                         (2)     (3)    (4)  (6)
/* #pragma saddr var2 */ /* count:0,size:2,near,unref */
 
/*** function information ***/
(7)                    (8)      (9)
#pragma callt func1 /* count:20,near */
(10)                         (8)     (9)  (11)
/* #pragma callt func2 */ /* count:0,near,unref */

項番

説明

(1)

変数情報

#pragma指令によるsaddr変数の宣言を出力します。

(2)

参照回数

変数の参照回数を出力します。

(3)

変数のサイズ

変数のサイズを出力します。

(4)

参照タイプ

参照タイプをnear,far,saddrで出力します。

(5)

変数情報

saddr領域から溢れた変数をコメントで出力します。

(6)

変数の補足情報

変数の補足情報を出力します。補足情報は次のものがあります。

unref : 変数の参照がない場合に出力します。

const : const変数の場合に出力します。

fix : 変数の配置がリロケータブルでない場合に出力します。

unrecognizable : 変数をシンボルとして認識できない場合に出力します。

(7)

関数情報

#pragma指令によるcallt関数の宣言を出力します。

(8)

参照回数

関数の参照回数を出力します。

(9)

関数の呼び出し方法

関数の呼び出し方法をnear,far,calltで出力します。

(10)

関数情報

callt領域から溢れた関数をコメントで出力します。

(11)

関数の補足情報

関数の補足情報を出力します。補足情報は次のものがあります。

unref : 関数の参照がない場合に出力します。

interrupt : 割り込みハンドラの場合に出力します。

unrecognizable : 関数をシンボルとして認識できない場合に出力します。