Intel® C++ Compiler 16.0 User and Reference Guide

prof-gen, Qprof-gen

Produces an instrumented object file that can be used in profile guided optimization.

Architecture Restrictions

Not available on IA-32 architecture targeting Intel® Graphics Technology, or on Intel® 64 architecture targeting Intel® Graphics Technology

Syntax

Linux and OS X:

-prof-gen[=keyword[, keyword],...]

-no-prof-gen

Windows:

/Qprof-gen[:keyword[, keyword],...]

/Qprof-gen-

Arguments

keyword

Specifies details for the instrumented file. Possible values are:

default

Produces an instrumented object file. This is the same as specifying the [Q]prof-gen option with no keyword.

srcpos

Produces an instrumented object file that includes extra source position information.

globdata

Produces an instrumented object file that includes information for global data layout.

[no]threadsafe

Produces an instrumented object file that includes the collection of PGO data on applications that use a high level of parallelism. If [Q]prof-gen is specified with no keyword, the default is nothreadsafe.

On Intel® 64 architecture targeting the Intel® Xeon Phi™ coprocessor x100 product family (formerly code name Knights Corner), the only valid mode is keyword threadsafe.

Default

-no-prof-gen or /Qprof-gen-

Profile generation is disabled.

Description

This option produces an instrumented object file that can be used in profile guided optimization. It gets the execution count of each basic block.

You can specify more than one setting for [Q]prof-gen. For example, you can specify the following:

–prof-gen=scrpos -prof-gen=threadsafe (Linux* and OS X*) 
-prof-gen=scrpos, threadsafe (this is equivalent to the above)
/Qprof-gen:scrpos /Qprof-gen:threadsafe (Windows*)
/Qprof-gen:scrpos, threadsafe (this is equivalent to the above)

If you specify keyword srcpos or globdata, a static profile information file (.spi) is created. These settings may increase the time needed to do a parallel build using -prof-gen, because of contention writing the .spi file.

These options are used in phase 1 of the Profile Guided Optimizer (PGO) to instruct the compiler to produce instrumented code in your object files in preparation for instrumented execution.

When the [Q]prof-gen option is used to produce an instrumented binary file for profile generation, some optimizations are disabled. Those optimizations are not disabled for any subsequent profile-guided compilation with option [Q]prof-use that makes use of the generated profiles.

IDE Equivalent

Visual Studio: General > Profile Guided Optimization

General > Code Coverage Build Options

Eclipse: Optimization > Profile Guided Optimization

Xcode: None

Alternate Options

None