Interprocedural and profile-guided optimizations, Interprocedural optimization (ipo), Profile-guided optimization (pgo) – Intel ARCHITECTURE IA-32 User Manual

Page 441

Advertising
background image

Application Performance Tools

A

A-7

The

-Qrcd

option disables the change to truncation of the rounding

mode in floating-point-to-integer conversions.

For complete details on all of the code optimization options, refer to the
Intel® C++ Compiler User’s Guide.

Interprocedural and Profile-Guided Optimizations

The following are two methods to improve the performance of your
code based on its unique profile and procedural dependencies:

Interprocedural Optimization (IPO)

Use the

-Qip

option to analyze your code and apply optimizations

between procedures within each source file. Use multifile IPO with

-Qipo

to enable the optimizations between procedures in separate

source files.

Profile-Guided Optimization (PGO)

Creates an instrumented program from your source code and special
code from the compiler. Each time this instrumented code is executed,
the compiler generates a dynamic information file. When you compile a
second time, the dynamic information files are merged into a summary
file. Using the profile information in this file, the compiler attempts to
optimize the execution of the most heavily travelled paths in the
program.

Profile-guided optimization is particularly beneficial for the Pentium 4
and Intel Xeon processor family. It greatly enhances the optimization
decisions the compiler makes regarding instruction cache utilization and
memory paging. Also, because PGO uses execution-time information to
guide the optimizations, branch-prediction can be significantly
enhanced by reordering branches and basic blocks to keep the most
commonly used paths in the microarchitecture pipeline, as well as
generating the appropriate branch-hints for the processor.

Advertising