The options described below provide monitoring the outcome of Intel compiler-generated code without interfering with the way your program runs.
You can specify an alignment constraint for structures and unions in two ways:
place a pack pragma in your source file, or
enter the alignment option on the command line
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:
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:
IA-32 systems: prompt>icc -Zp2 prog1.cpp
Itanium(TM)-based systems: prompt>ecc -Zp2 prog1.cpp
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.
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.