3.7.1 Outputting the variable/function information file

-

When the -lnkopt=-vfinfo option is specified, the optimizing linker outputs the variable/function information file.
For details on the -vfinfo option, see "-VFINFO".

-

The optimizing linker significantly reduces the size of the code as a whole by selecting variables and functions on the basis of size of variables and frequency of reference and producing header files (variable/function information files) in which #pragma directives to use the saddr variables, callt function, or near function are added.

For #pragma saddr, see "Using saddr area (__saddr)". For #pragma callt, see "callt function (__callt)". For #pragma near, see "near/far function (#pragma near/#pragma far) [V1.05 or later]".

-

The following variables or functions are not targets of the variable/function information file.
However, interrupt handlers are commented out in the variable/function information file.

-

Standard library functions and runtime library functions

-

Software interrupt handler, hardware interrupt handler, and RTOS interrupt handler

-

Variables or functions defined in the assembly source file

-

The output example of the variable/function information file is shown below.

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

Number

Description

(1)

Variable information

A declaration of the saddr variable by a #pragma directive is output.

(2)

Number of references

The number of times the variable is referenced is output.

(3)

Size of variable

The size of the variable is output.

(4)

Reference type

The original reference type of the variable is output as near, far, or saddr.

(5)

File name

The object file name to which the variable belongs is output.

(6)

Variable information

The variable spilled from the saddr area is output as a comment.

(7)

Supplementary information of variable

Supplementary information of the variable is output. The following items are such supplementary information.

unref: Output when the variable is not referenced.

const: Output for a const variable.

fix: Output when the location of the variable is not relocatable.

unrecognizable: Output when the variable cannot be recognized as a symbol.

(8)

Function information

A declaration of the callt function by a #pragma directive is output.

(9)

Number of references

The number of times the function is referenced is output.

(10)

Method of function call

The original method of function call is output as near, far, or callt.

(11)

File name

The object file name to which the function belongs is output.

(12)

Function information

A declaration of the near function by a #pragma directive is output.

(13)

Function information

The function spilled from the callt or near area is output as a comment.

(14)

Supplementary information of function

Supplementary information of the function is output. The following items are such supplementary information.

unref: Output when the function is not referenced.

interrupt: Output for an interrupt handler.

unrecognizable: Output when the function cannot be recognized as a symbol.