Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

fnsplit, Qfnsplit

Enables function splitting.

Syntax

Linux:

-fnsplit[=n]

-no-fnsplit

macOS:

None

Windows:

/Qfnsplit[:n]

/Qfnsplit-

Arguments

n

Is an optional positive integer indicating the threshold number.

The blocks can be placed into a different code segment if they are only reachable via a conditional branch whose taken probability is less than the specified n. Branch taken probability is heuristically calculated by the compiler and can be observed in assembly listings.

The range for n is 0 <= n <= 100.

Default

OFF

Function splitting is not enabled. However, function grouping is still enabled.

Description

This option enables function splitting. If you specify [Q]fnsplit with no n, you must also specify option [Q]prof-use, or the option will have no effect and no function splitting will occur.

If you specify n, function splitting is enabled and you do not need to specify option [Q]prof-use.

To disable function splitting when you use option [Q]prof-use, specify /Qfnsplit- (Windows*) or -no-fnsplit (Linux*).

NOTE:

Function splitting is generally not supported when exception handling is turned on for C/C++ routines in the stack of called routines. See also -fexceptions (Linux*) and the C/C++ option /EH (Windows*).

IDE Equivalent

Visual Studio: Code Generation > Disable Function Splitting

Eclipse: None

Xcode: None

Alternate Options

Linux: -freorder-blocks-and-partition (a gcc option)

Windows: None