Monitoring Compiler-generated Code

The options described below provide monitoring the outcome of Intel compiler-generated code without interfering with the way your program runs.

Specifying Structure Tag Alignments

You can specify an alignment constraint for structures and unions in two ways:

Both specifications change structure tag alignment constraints.

Use the -Zp option to determine the alignment constraint for structure declarations. Generally, smaller constraints result in smaller data sections while larger constraints support faster execution.

The form of the -Zp option is:

-Zpn

The alignment constraint is indicated by one of the following values.

n=1 1 byte.
n=2 2 bytes.
n=4 4 bytes.
n=8 8 bytes
n=16 16 bytes.

For example, to specify 2 bytes as the alignment constraint for all structures and unions in the file prog1.cpp, use the following command:

Allocation of Zero-initialized Variables

By default, variables explicitly initialized with zeros are placed in the BSS section. But using the -nobss_init option, you can place any variables that are explicitly initialized with zeros in the DATA section if required.

Avoiding Incorrect Decoding of Certain Instructions (IA-32 Only)

Some instructions have 2-byte opcodes in which the first byte contains 0f. In rare cases, the PentiumŪ processor can decode these instructions incorrectly. Specify the -0f_check option to avoid the incorrect decoding of these instructions. The work-around implemented in the IntelŪ C++ Compiler avoids generating the susceptible instructions.