Developer Guide and Reference


Dumping Profile Information

function dumps the profile information collected by the instrumented application. The prototype of the function call is listed below.
void _PGOPTI_Prof_Dump_All(void);
An older version of this function,
, is deprecated and no longer used.
The new function,
, operates much like the deprecated function, except on Linux* operating systems, when it is used in connection with shared libraries (.so). When
is called, it insures that a .dyn file is created for all shared libraries needing to create a .dyn file. Use
on Linux OS to insure portability and correct functionality.
The profile information is generated in a
file (generated in phase 2 of PGO).
The environment variables that affect the
function are
, and COV_DPI
. Set the
environment variable to specify the directory to which the .dyn file must be stored. Alternately, you can use the
compiler option, when building with
, to specify this directory without setting the
variable. Set the
environment variables to specify an alternative .dpi filename. The default filename is
You can also use the
profmerge tool option, when merging the .dyn files, to specify the filename for the summary .dpi file.

Recommended Usage

If your application does not use a standard exit() call, insert a single call to this function in the body of the function that terminates the user application. Normally,
should be called just once. It is also possible to use this function in conjunction with _PGOPTI_Prof_Reset_All() function to generate multiple .dyn files (presumably from multiple sets of input data).
If the data is not reset between the dumps with a call to the _PGOPTI_Prof_Reset_All() function, the counters will continue accumulating data, resulting in the subsequent .dyn file containing data that was previously dumped.
#include <pgouser.h> void process_data(int foo) {} int get_input_data() { return 1; } int main(void) { // Selectively collect profile information for the portion // of the application involved in processing input data. int input_data = get_input_data(); while (input_data) { _PGOPTI_Prof_Reset All(); process_data(input_data); _PGOPTI_Prof_Dump_All(); input_data = get_input_data(); } return 0; }

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804