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

Alphabetical Option List

The following table lists all the current compiler options in alphabetical order.

A, QA

Specifies an identifier for an assertion.

alias-const, Qalias-const

Determines whether the compiler assumes a parameter of type pointer-to-const does not alias with a parameter of type pointer-to-non-const.

align

Determines whether variables and arrays are naturally aligned.

ansi

Enables language compatibility with the gcc option ansi.

ansi-alias, Qansi-alias

Enables or disables the use of ANSI aliasing rules in optimizations.

ansi-alias-check, Qansi-alias-check

Enables or disables the ansi-alias checker.

arch

Tells the compiler which features it may target, including which instruction sets it may generate.

auto-ilp32, Qauto-ilp32

Instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk into 32-bit pointers and if there are 64-bit longs (on Linux* systems) that can be safely shrunk into 32-bit longs.

auto-p32

Instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers.

ax, Qax

Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for Intel® processors if there is a performance benefit.

B

Specifies a directory that can be used to find include files, libraries, and executables.

Bdynamic

Enables dynamic linking of libraries at run time.

bigobj

Increases the number of sections that an object file can contain.

Bstatic

Enables static linking of a user's library.

Bsymbolic

Binds references to all global symbols in a program to the definitions within a user's shared library.

Bsymbolic-functions

Binds references to all global function symbols in a program to the definitions within a user's shared library.

C

Places comments in preprocessed source output.

c

Prevents linking.

check

Checks for certain conditions at run time.

check-pointers, Qcheck-pointers

Determines whether the compiler checks bounds for memory access through pointers.

check-pointers-dangling, Qcheck-pointers-dangling

Determines whether the compiler checks for dangling pointer references.

check-pointers-mpx, Qcheck-pointers-mpx

Determines whether the compiler checks bounds for memory access through pointers on processors that support Intel® Memory Protection Extensions (Intel® MPX).

check-pointers-narrowing, Qcheck-pointers-narrowing

Determines whether the compiler enables or disables the narrowing of pointers to structure fields.

check-pointers-undimensioned, Qcheck-pointers-undimensioned

Determines whether the compiler checks bounds for memory access through arrays that are declared without dimensions.

clang-name

Specifies the name of the Clang compiler that should be used to set up the environment for C compilations.

clangxx-name

Specifies the name of the Clang++ compiler that should be used to set up the environment for C++ compilations.

complex-limited-range, Qcomplex-limited-range

Determines whether the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX is enabled.

cxxlib

Determines whether the compiler links using the C++ run-time libraries and header files provided by gcc.

D

Defines a macro name that can be associated with an optional value.

dD, QdD

Same as option -dM, but outputs #define directives in preprocessed source.

debug (Linux* and macOS* )

Enables or disables generation of debugging information.

debug (Windows*)

Enables or disables generation of debugging information.

device-math-lib

Enables or disables certain device libraries. This is a deprecated option that may be removed in a future release.

diag, Qdiag

Controls the display of diagnostic information during compilation.

diag-dump, Qdiag-dump

Tells the compiler to print all enabled diagnostic messages.

diag-enable=power, Qdiag-enable:power

Controls whether diagnostics are enabled for possibly inefficient code that may affect power consumption on IA-32 and Intel® 64 architectures.

diag-error-limit, Qdiag-error-limit

Specifies the maximum number of errors allowed before compilation stops.

diag-file, Qdiag-file

Causes the results of diagnostic analysis to be output to a file.

diag-file-append, Qdiag-file-append

Causes the results of diagnostic analysis to be appended to a file.

diag-id-numbers, Qdiag-id-numbers

Determines whether the compiler displays diagnostic messages by using their ID number values.

diag-once, Qdiag-once

Tells the compiler to issue one or more diagnostic messages only once.

dM, QdM

Tells the compiler to output macro definitions in effect after preprocessing.

dN, QdN

Same as option -dD, but output #define directives contain only macro names.

dryrun

Specifies that driver tool commands should be shown but not executed.

dumpmachine

Displays the target machine and operating system configuration.

dumpversion

Displays the version number of the compiler.

dynamiclib

Invokes the libtool command to generate dynamic libraries.

dynamic-linker

Specifies a dynamic linker other than the default.

E

Causes the preprocessor to send output to stdout.

early-template-check

Lets you semantically check template function template prototypes before instantiation.

EH

Specifies the model of exception handling to be performed.

EP

Causes the preprocessor to send output to stdout, omitting #line directives.

F ( macOS* )

Adds a framework directory to the head of an include file search path.

F (Windows*)

Specifies the stack reserve amount for the program.

Fa

Specifies that an assembly listing file should be generated.

FA

Specifies the contents of an assembly listing file.

fabi-version

Instructs the compiler to select a specific ABI implementation.

falias, Oa

Determines whether aliasing is assumed in a program.

falign-functions, Qfnalign

Tells the compiler to align functions on an optimal byte boundary.

falign-loops, Qalign-loops

Aligns loops to a power-of-two byte boundary.

falign-stack

Tells the compiler the stack alignment to use on entry to routines. This is a deprecated option that may be removed in a future release.

fargument-alias, Qalias-args

Determines whether function arguments can alias each other.

fargument-noalias-global

Tells the compiler that function arguments cannot alias each other and cannot alias global storage.

fasm-blocks

Enables the use of blocks and entire functions of assembly code within a C or C++ file.

fast

Maximizes speed across the entire program.

fast-transcendentals, Qfast-transcendentals

Enables the compiler to replace calls to transcendental functions with faster but less precise implementations.

fasynchronous-unwind-tables

Determines whether unwind information is precise at an instruction boundary or at a call boundary.

fblocks

Determines whether Apple* blocks are enabled or disabled.

fbuiltin, Oi

Enables or disables inline expansion of intrinsic functions.

FC

Displays the full path of source files passed to the compiler in diagnostics.

fcf-protection, Qcf-protection

Enables Control-flow Enforcement Technology (CET) protection, which defends your program from certain attacks that exploit vulnerabilities. This option offers preliminary support for CET.

fcode-asm

Produces an assembly listing with machine code annotations.

fcommon

Determines whether the compiler treats common symbols as global definitions.

FD

Generates file dependencies related to the Microsoft* C/C++ compiler.

Fd

Lets you specify a name for a program database (PDB) file created by the compiler.

fdata-sections, Gw

Places each data item in its own COMDAT section.

fdefer-pop

Determines whether the compiler always pops the arguments to each function call as soon as that function returns.

Fe

Specifies the name for a built program or dynamic-link library.

feliminate-unused-debug-types, Qeliminate-unused-debug-types

Controls the debug information emitted for types declared in a compilation unit.

femit-class-debug-always

Controls the format and size of debug information generated by the compiler for C++ classes.

fexceptions

Enables exception handling table generation.

fextend-arguments, Qextend-arguments

Controls how scalar integer arguments are extended in calls to unprototyped and varargs functions.

ffat-lto-objects

Determines whether a fat link-time optimization (LTO) object, containing both intermediate language and object code, is generated during an interprocedural optimization compilation (-c –ipo).

ffnalias, Ow

Determines whether aliasing is assumed within functions.

ffreestanding , Qfreestanding

Ensures that compilation takes place in a freestanding environment.

ffriend-injection

Causes the compiler to inject friend functions into the enclosing namespace.

ffunction-sections, Gy

Places each function in its own COMDAT section.

fgnu89-inline

Tells the compiler to use C89 semantics for inline functions when in C99 mode.

fimf-absolute-error, Qimf-absolute-error

Defines the maximum allowable absolute error for math library function results.

fimf-accuracy-bits, Qimf-accuracy-bits

Defines the relative error for math library function results, including division and square root.

fimf-arch-consistency, Qimf-arch-consistency

Ensures that the math library functions produce consistent results across different microarchitectural implementations of the same architecture.

fimf-domain-exclusion, Qimf-domain-exclusion

Indicates the input arguments domain on which math functions must provide correct results.

fimf-force-dynamic-target, Qimf-force-dynamic-target

Instructs the compiler to use run-time dispatch in calls to math functions.

fimf-max-error, Qimf-max-error

Defines the maximum allowable relative error for math library function results, including division and square root.

fimf-precision, Qimf-precision

Lets you specify a level of accuracy (precision) that the compiler should use when determining which math library functions to use.

fimf-use-svml, Qimf-use-svml

Instructs the compiler to use the Short Vector Math Library (SVML) rather than the Intel® C++ Compiler Classic Math Library (LIBM) to implement math library functions.

finline

Tells the compiler to inline functions declared with __inline and perform C++ inlining .

finline-functions

Enables function inlining for single file compilation.

finline-limit

Lets you specify the maximum size of a function to be inlined.

finstrument-functions, Qinstrument-functions

Determines whether function entry and exit points are instrumented.

FI

Tells the preprocessor to include a specified file name as the header file.

fixed

Causes the linker to create a program that can be loaded only at its preferred base address.

fjump-tables

Determines whether jump tables are generated for switch statements.

fkeep-static-consts , Qkeep-static-consts

Tells the compiler to preserve allocation of variables that are not referenced in the source.

Fm

Tells the linker to generate a link map file. This is a deprecated option that may be removed in a future release.

fma, Qfma

Determines whether the compiler generates fused multiply-add (FMA) instructions if such instructions exist on the target processor.

fmath-errno

Tells the compiler that errno can be reliably tested after calls to standard math library functions.

fmerge-constants

Determines whether the compiler and linker attempt to merge identical constants (string constants and floating-point constants) across compilation units.

fmerge-debug-strings

Causes the compiler to pool strings used in debugging information.

fminshared

Specifies that a compilation unit is a component of a main program and should not be linked as part of a shareable object.

fmpc-privatize

Enables or disables privatization of all static data for the MultiProcessor Computing environment (MPC) unified parallel runtime.

fms-dialect

Enables support for a language dialect that is compatible with Microsoft Windows*, while maintaining link compatibility with GCC*.

fmudflap

Tells the compiler to instrument risky pointer operations to prevent buffer overflows and invalid heap use. This is a deprecated option that may be removed in a future release.

fno-gnu-keywords

Tells the compiler to not recognize typeof as a keyword.

fno-implicit-inline-templates

Tells the compiler to not emit code for implicit instantiations of inline templates.

fno-implicit-templates

Tells the compiler to not emit code for non-inline templates that are instantiated implicitly.

fnon-call-exceptions

Allows trapping instructions to throw C++ exceptions.

fnon-lvalue-assign

Determines whether casts and conditional expressions can be used as lvalues.

fno-operator-names

Disables support for the operator names specified in the standard.

fno-rtti

Disables support for run-time type information (RTTI).

fnsplit, Qfnsplit

Enables function splitting.

Fo

Specifies the name for an object file.

fomit-frame-pointer , Oy

Determines whether EBP is used as a general-purpose register in optimizations.

fopenmp-device-lib

Enables or disables certain device libraries for an OpenMP* target.

foptimize-sibling-calls

Determines whether the compiler optimizes tail recursive calls.

Fp

Lets you specify an alternate path or file name for precompiled header files.

fpack-struct

Specifies that structure members should be packed together.

fpascal-strings

Tells the compiler to allow for Pascal-style string literals.

fpermissive

Tells the compiler to allow for non-conformant code.

fpic

Determines whether the compiler generates position-independent code.

fpie

Tells the compiler to generate position-independent code. The generated code can only be linked into executables.

fp-model, fp

Controls the semantics of floating-point calculations.

fp-port, Qfp-port

Rounds floating-point results after floating-point operations.

fprotect-parens, Qprotect-parens

Determines whether the optimizer honors parentheses when floating-point expressions are evaluated.

fp-speculation, Qfp-speculation

Tells the compiler the mode in which to speculate on floating-point operations.

fp-stack-check, Qfp-stack-check

Tells the compiler to generate extra code after every function call to ensure that the floating-point stack is in the expected state.

fp-trap, Qfp-trap

Sets the floating-point trapping mode for the main routine.

fp-trap-all, Qfp-trap-all

Sets the floating-point trapping mode for all routines.

FR

Invokes the Microsoft* C/C++ compiler and tells it to produce a BSCMAKE .sbr file with complete symbolic information.

freg-struct-return

Tells the compiler to return struct and union values in registers when possible.

fshort-enums

Tells the compiler to allocate as many bytes as needed for enumerated types.

fsource-asm

Produces an assembly listing with source code annotations.

fstack-protector

Enables or disables stack overflow security checks for certain (or all) routines.

fstack-security-check

Determines whether the compiler generates code that detects some buffer overruns.

fsyntax-only

Tells the compiler to check only for correct syntax.

ftemplate-depth, Qtemplate-depth

Control the depth in which recursive templates are expanded.

ftls-model

Changes the thread local storage (TLS) model.

ftrapuv , Qtrapuv

Initializes stack local variables to an unusual value to aid error detection.

ftz, Qftz

Flushes denormal results to zero.

funroll-all-loops

Unroll all loops even if the number of iterations is uncertain when the loop is entered.

funsigned-bitfields

Determines whether the default bitfield type is changed to unsigned.

funsigned-char

Change default char type to unsigned.

fuse-ld

Tells the compiler to use a different linker instead of the default linker (ld).

fverbose-asm

Produces an assembly listing with compiler comments, including options and version information.

fvisibility

Specifies the default visibility for global symbols or the visibility for symbols in a file.

fvisibility-inlines-hidden

Causes inline member functions (those defined in the class declaration) to be marked hidden.

fzero-initialized-in-bss, Qzero-initialized-in-bss

Determines whether the compiler places in the DATA section any variables explicitly initialized with zeros.

g

Tells the compiler to generate a level of debugging information in the object file.

GA

Enables faster access to certain thread-local storage (TLS) variables.

gcc, gcc-sys

Determines whether certain GNU macros are defined or undefined.

gcc-include-dir

Controls whether the gcc-specific include directory is put into the system include path.

gcc-name

Lets you specify the name of the GCC compiler that should be used to set up the environment for C compilations.

Gd

Makes __cdecl the default calling convention.

gdwarf

Lets you specify a DWARF Version format when generating debug information.

Ge

Enables stack-checking for all functions. This is a deprecated option that may be removed in a future release.

GF

Enables read-only string-pooling optimization.

Gh

Calls a function to aid custom user profiling.

GH

Calls a function to aid custom user profiling.

global-hoist, Qglobal-hoist

Enables certain optimizations that can move memory loads to a point earlier in the program execution than where they appear in the source.

Gm

Enables a minimal rebuild.

gnu-prefix

Lets you specify a prefix that will be added to the names of gnu utilities called from the compiler.

GR

Enables or disables C++ Run Time Type Information (RTTI).

Gr

Makes __fastcall the default calling convention.

grecord-gcc-switches

Causes the command line options that were used to invoke the compiler to be appended to the DW_AT_producer attribute in DWARF debugging information.

GS

Determines whether the compiler generates code that detects some buffer overruns.

Gs

Lets you control the threshold at which the stack checking routine is called or not called.

gsplit-dwarf

Creates a separate object file containing DWARF debug information.

GT

Enables fiber-safe thread-local storage of data.

guard

Enables the control flow protection mechanism.

guide, Qguide

Lets you set a level of guidance for auto-vectorization, auto parallelism, and data transformation.

guide-data-trans, Qguide-data-trans

Lets you set a level of guidance for data transformation.

guide-file, Qguide-file

Causes the results of guided auto parallelism to be output to a file.

guide-file-append, Qguide-file-append

Causes the results of guided auto parallelism to be appended to a file.

guide-opts, Qguide-opts

Tells the compiler to analyze certain code and generate recommendations that may improve optimizations.

guide-par, Qguide-par

Lets you set a level of guidance for auto parallelism.

guide-vec, Qguide-vec

Lets you set a level of guidance for auto-vectorization.

Gv

Tells the compiler to use the vector calling convention (__vectorcall) when passing vector type arguments.

gxx-name

Lets you specify the name of the g++ compiler that should be used to set up the environment for C++ compilations.

GZ

Initializes all local variables. This is a deprecated option that may be removed in a future release.

Gz

Makes __stdcall the default calling convention.

H, QH

Tells the compiler to display the include file order and continue compilation.

H (Windows*)

Causes the compiler to limit the length of external symbol names. This is a deprecated option. There is no replacement option.

help

Displays all supported compiler options or supported compiler options within a specified category of options.

help-pragma, Qhelp-pragma

Displays all supported pragmas.

homeparams

Tells the compiler to store parameters passed in registers to the stack.

hotpatch

Tells the compiler to prepare a routine for hotpatching.

I

Specifies an additional directory to search for include files.

I-

Splits the include path.

icc, Qicl

Determines whether certain Intel®-specific compiler macros are defined or undefined.

idirafter

Adds a directory to the second include file search path.

imacros

Allows a header to be specified that is included in front of the other headers in the translation unit.

inline-calloc, Qinline-calloc

Tells the compiler to inline calls to calloc() as calls to malloc() and memset().

inline-factor, Qinline-factor

Specifies the percentage multiplier that should be applied to all inlining options that define upper limits.

inline-forceinline, Qinline-forceinline

Instructs the compiler to force inlining of functions suggested for inlining whenever the compiler is capable doing so.

inline-level, Ob

Specifies the level of inline function expansion.

inline-max-per-compile, Qinline-max-per-compile

Specifies the maximum number of times inlining may be applied to an entire compilation unit.

inline-max-per-routine, Qinline-max-per-routine

Specifies the maximum number of times the inliner may inline into a particular routine.

inline-max-size, Qinline-max-size

Specifies the lower limit for the size of what the inliner considers to be a large routine.

inline-max-total-size, Qinline-max-total-size

Specifies how much larger a routine can normally grow when inline expansion is performed.

inline-min-caller-growth, Qinline-min-caller-growth

Lets you specify a function size n for which functions of size <= n do not contribute to the estimated growth of the caller when inlined.

inline-min-size, Qinline-min-size

Specifies the upper limit for the size of what the inliner considers to be a small routine.

intel-extensions, Qintel-extensions

Enables or disables all Intel® C and Intel® C++ language extensions.

intel-freestanding

Lets you compile in the absence of a gcc environment.

intel-freestanding-target-os

Lets you specify the target operating system for compilation.

ip, Qip

Determines whether additional interprocedural optimizations for single-file compilation are enabled.

ip-no-inlining, Qip-no-inlining

Disables full and partial inlining enabled by interprocedural optimization options.

ip-no-pinlining, Qip-no-pinlining

Disables partial inlining enabled by interprocedural optimization options.

ipo, Qipo

Enables interprocedural optimization between files.

ipo-c, Qipo-c

Tells the compiler to optimize across multiple files and generate a single object file.

ipo-jobs, Qipo-jobs

Specifies the number of commands (jobs) to be executed simultaneously during the link phase of Interprocedural Optimization (IPO).

ipo-S, Qipo-S

Tells the compiler to optimize across multiple files and generate a single assembly file.

ipo-separate, Qipo-separate

Tells the compiler to generate one object file for every source file.

ipp-link, Qipp-link

Controls whether the compiler links to static or dynamic threaded Intel® Integrated Performance Primitives (Intel® IPP) run-time libraries.

iprefix

Lets you indicate the prefix for referencing directories that contain header files.

iquote

Adds a directory to the front of the include file search path for files included with quotes but not brackets.

isystem

Specifies a directory to add to the start of the system include path.

iwithprefix

Appends a directory to the prefix passed in by -iprefix and puts it on the include search path at the end of the include directories.

iwithprefixbefore

Similar to -iwithprefix except the include directory is placed in the same place as -I command-line include directories.

J

Sets the default character type to unsigned.

Kc++, TP

Tells the compiler to process all source or unrecognized file types as C++ source files. This is a deprecated option that may be removed in a future release.

l

Tells the linker to search for a specified library when linking.

L

Tells the linker to search for libraries in a specified directory before searching the standard directories.

LD

Specifies that a program should be linked as a dynamic-link (DLL) library.

link

Passes user-specified options directly to the linker at compile time.

m

Tells the compiler which features it may target, including which instruction sets it may generate.

M, QM

Tells the compiler to generate makefile dependency lines for each source file.

m32, m64 , Qm32, Qm64

Tells the compiler to generate code for a specific architecture.

m80387

Specifies whether the compiler can use x87 instructions.

malign-double

Determines whether double, long double, and long long types are naturally aligned. This option is equivalent to specifying option align.

malign-mac68k

Aligns structure fields on 2-byte boundaries (m68k compatible).

malign-natural

Aligns larger types on natural size-based boundaries (overrides ABI).

malign-power

Aligns based on ABI-specified alignment rules.

map-opts, Qmap-opts

Maps one or more compiler options to their equivalent on a different operating system.

march

Tells the compiler to generate code for processors that support certain features.

masm

Tells the compiler to generate the assembler output file using a selected dialect.

mauto-arch, Qauto-arch

Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for x86 architecture processors if there is a performance benefit.

mbranches-within-32B-boundaries, Qbranches-within-32B-boundaries

Tells the compiler to align branches and fused branches on 32-byte boundaries for better performance.

mcmodel

Tells the compiler to use a specific memory model to generate code and store data.

mconditional-branch, Qconditional-branch

Lets you identify and fix code that may be vulnerable to speculative execution side-channel attacks, which can leak your secure data as a result of bad speculation of a conditional branch direction.

MD

Tells the linker to search for unresolved references in a multithreaded, dynamic-link run-time library.

MD, QMD

Preprocess and compile, generating output file containing dependency information ending with extension .d.

mdynamic-no-pic

Generates code that is not position-independent but has position-independent external references.

MF, QMF

Tells the compiler to generate makefile dependency information in a file.

MG, QMG

Tells the compiler to generate makefile dependency lines for each source file.

minstruction, Qinstruction

Determines whether MOVBE instructions are generated for certain Intel® processors.

mlong-double

Lets you override the default configuration of the long double data type.

MM, QMM

Tells the compiler to generate makefile dependency lines for each source file.

MMD, QMMD

Tells the compiler to generate an output file containing dependency information.

momit-leaf-frame-pointer

Determines whether the frame pointer is omitted or kept in leaf functions.

MP

Tells the compiler to add a phony target for each dependency.

mp1, Qprec

Improves floating-point precision and consistency.

MP-force

Disables the default heuristics used when compiler option /MP is specified. This lets you control the number of processes spawned.

MQ

Changes the default target rule for dependency generation.

mregparm

Lets you control the number registers used to pass integer arguments.

mregparm-version

Determines which version of the Application Binary Interface (ABI) is used for the regparm parameter passing convention.

mstringop-inline-threshold, Qstringop-inline-threshold

Tells the compiler to not inline calls to buffer manipulation functions such as memcpy and memset when the number of bytes the functions handle are known at compile time and greater than the specified value.

mstringop-strategy, Qstringop-strategy

Lets you override the internal decision heuristic for the particular algorithm used when implementing buffer manipulation functions such as memcpy and memset.

MT

Tells the linker to search for unresolved references in a multithreaded, static run-time library.

MT, QMT

Changes the default target rule for dependency generation.

mtune, tune

Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march).

multibyte-chars, Qmultibyte-chars

Determines whether multi-byte characters are supported.

multiple-processes , MP

Creates multiple processes that can be used to compile large numbers of source files at the same time.

noBool

Disables the bool keyword.

no-bss-init, Qnobss-init

Tells the compiler to place in the DATA section any uninitialized variables and explicitly zero-initialized variables. This is a deprecated option that may be removed in a future release.

nodefaultlibs

Prevents the compiler from using standard libraries when linking.

no-intel-lib, Qno-intel-lib

Disables linking to specified Intel® libraries, or to all Intel® libraries.

no-libgcc

Prevents the linking of certain gcc-specific libraries.

nolib-inline

Disables inline expansion of standard library or intrinsic functions.

nologo

Tells the compiler to not display compiler version information.

nostartfiles

Prevents the compiler from using standard startup files when linking.

nostdinc++

Do not search for header files in the standard directories for C++, but search the other standard directories.

nostdlib

Prevents the compiler from using standard libraries and startup files when linking.

O

Specifies the code optimization for applications.

o

Specifies the name for an output file.

Od

Disables all optimizations.

Ofast

Sets certain aggressive options to improve the speed of your application.

Os

Enables optimizations that do not increase code size; it produces smaller code size than O2.

Ot

Enables all speed optimizations.

Ox

Enables maximum optimizations.

p

Compiles and links for function profiling with gprof(1).

P

Tells the compiler to stop the compilation process and write the results to a file.

par-affinity, Qpar-affinity

Specifies thread affinity.

parallel, Qparallel

Tells the auto-parallelizer to generate multithreaded code for loops that can be safely executed in parallel.

parallel-source-info, Qparallel-source-info

Enables or disables source location emission when OpenMP* or auto-parallelism code is generated.

par-loops, Qpar-loops

Lets you select between old or new implementations of parallel loop support.

par-num-threads, Qpar-num-threads

Specifies the number of threads to use in a parallel region.

par-runtime-control, Qpar-runtime-control

Generates code to perform run-time checks for loops that have symbolic loop bounds.

par-schedule, Qpar-schedule

Lets you specify a scheduling algorithm for loop iterations.

par-threshold, Qpar-threshold

Sets a threshold for the auto-parallelization of loops.

pc, Qpc

Enables control of floating-point significand precision.

pch

Tells the compiler to use appropriate precompiled header files.

pch-create

Tells the compiler to create a precompiled header file.

pch-dir

Tells the compiler the location for precompiled header files.

pch-use

Tells the compiler to use a precompiled header file.

pdbfile

Lets you specify the name for a program database (PDB) file created by the linker.

pie

Determines whether the compiler generates position-independent code that will be linked into an executable.

pragma-optimization-level

Specifies which interpretation of the optimization_level pragma should be used if no prefix is specified.

prec-div, Qprec-div

Improves precision of floating-point divides.

prec-sqrt, Qprec-sqrt

Improves precision of square root implementations.

print-multi-lib

Prints information about where system libraries should be found.

print-sysroot

Prints the target sysroot directory that is used during compilation.

prof-data-order, Qprof-data-order

Enables or disables data ordering if profiling information is enabled.

prof-dir, Qprof-dir

Specifies a directory for profiling information output files.

prof-file, Qprof-file

Specifies an alternate file name for the profiling summary files.

prof-func-groups

Enables or disables function grouping if profiling information is enabled.

prof-func-order, Qprof-func-order

Enables or disables function ordering if profiling information is enabled.

prof-gen, Qprof-gen

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

prof-gen-sampling

Tells the compiler to generate debug discriminators in debug output. This aids in developing more precise sampled profiling output. This is a deprecated option that may be removed in a future release.

prof-hotness-threshold, Qprof-hotness-threshold

Lets you set the hotness threshold for function grouping and function ordering.

prof-src-dir, Qprof-src-dir

Determines whether directory information of the source file under compilation is considered when looking up profile data records.

prof-src-root, Qprof-src-root

Lets you use relative directory paths when looking up profile data and specifies a directory as the base.

prof-src-root-cwd, Qprof-src-root-cwd

Lets you use relative directory paths when looking up profile data and specifies the current working directory as the base.

prof-use, Qprof-use

Enables the use of profiling information during optimization.

prof-use-sampling

Lets you use data files produced by hardware profiling to produce an optimized executable. This is a deprecated option that may be removed in a future release.

prof-value-profiling, Qprof-value-profiling

Controls which values are value profiled.

pthread

Tells the compiler to use pthreads library for multithreading support.

Qcov-dir

Specifies a directory for profiling information output files that can be used with the codecov or tselect tool.

Qcov-file

Specifies an alternate file name for the profiling summary files that can be used with the codecov or tselect tool.

Qcov-gen

Produces an instrumented object file that can be used with the codecov or tselect tool.

Qcxx-features

Enables standard C++ features without disabling Microsoft* features.

qdaal, Qdaal

Tells the compiler to link to certain libraries in the Intel® oneAPI Data Analytics Library ( oneDAL ).

Qgcc-dialect

Enables support for a limited gcc-compatible dialect on Windows*.

Qinline-dllimport

Determines whether dllimport functions are inlined.

Qinstall

Specifies the root directory where the compiler installation was performed.

qipp, Qipp

Tells the compiler to link to some or all of the Intel® Integrated Performance Primitives (Intel® IPP) libraries.

Qlocation

Specifies the directory for supporting tools.

Qlong-double

Changes the default size of the long double data type.

qmkl, Qmkl

Tells the compiler to link to certain libraries in the Intel® oneAPI Math Kernel Library ( oneMKL ). On Windows systems, you must specify this option at compile time.

qmkl-ilp64, Qmkl-ilp64

Tells the compiler to link to the ILP64-specific version of the Intel® oneAPI Math Kernel Library ( oneMKL ). On Windows systems, you must specify this option at compile time.

Qms

Tells the compiler to emulate Microsoft* compatibility bugs.

qopenmp, Qopenmp

Enables the parallelizer to generate multi-threaded code based on OpenMP* directives.

qopenmp-lib, Qopenmp-lib

Lets you specify an OpenMP* run-time library to use for linking.

qopenmp-link

Controls whether the compiler links to static or dynamic OpenMP* run-time libraries.

qopenmp-simd, Qopenmp-simd

Enables or disables OpenMP* SIMD compilation.

qopenmp-stubs, Qopenmp-stubs

Enables compilation of OpenMP* programs in sequential mode.

qopenmp-threadprivate, Qopenmp-threadprivate

Lets you specify an OpenMP* threadprivate implementation.

qopt-args-in-regs, Qopt-args-in-regs

Determines whether calls to routines are optimized by passing parameters in registers instead of on the stack. This option is deprecated and will be removed in a future release.

qopt-assume-safe-padding, Qopt-assume-safe-padding

Determines whether the compiler assumes that variables and dynamically allocated memory are padded past the end of the object.

qopt-block-factor, Qopt-block-factor

Lets you specify a loop blocking factor.

qopt-calloc

Tells the compiler to substitute a call to _intel_fast_calloc() for a call to calloc().

qopt-class-analysis, Qopt-class-analysis

Determines whether C++ class hierarchy information is used to analyze and resolve C++ virtual function calls at compile time.

qopt-dynamic-align, Qopt-dynamic-align

Enables or disables dynamic data alignment optimizations.

Qoption

Passes options to a specified tool.

qopt-jump-tables, Qopt-jump-tables

Enables or disables generation of jump tables for switch statements.

qopt-malloc-options

Lets you specify an alternate algorithm for malloc().

qopt-matmul, Qopt-matmul

Enables or disables a compiler-generated Matrix Multiply (matmul) library call.

qopt-mem-layout-trans, Qopt-mem-layout-trans

Controls the level of memory layout transformations performed by the compiler.

qopt-multiple-gather-scatter-by-shuffles, Qopt-multiple-gather-scatter-by-shuffles

Enables or disables the optimization for multiple adjacent gather/scatter type vector memory references.

qopt-multi-version-aggressive, Qopt-multi-version-aggressive

Tells the compiler to use aggressive multi-versioning to check for pointer aliasing and scalar replacement.

qopt-prefetch, Qopt-prefetch

Enables or disables prefetch insertion optimization.

qopt-prefetch-distance, Qopt-prefetch-distance

Specifies the prefetch distance to be used for compiler-generated prefetches inside loops.

qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint

Supports the prefetchW instruction in Intel® microarchitecture code name Broadwell and later.

qopt-ra-region-strategy, Qopt-ra-region-strategy

Selects the method that the register allocator uses to partition each routine into regions.

qopt-report, Qopt-report

Tells the compiler to generate an optimization report.

qopt-report-annotate, Qopt-report-annotate

Enables the annotated source listing feature and specifies its format.

qopt-report-annotate-position, Qopt-report-annotate-position

Enables the annotated source listing feature and specifies the site where optimization messages appear in the annotated source in inlined cases of loop optimizations.

qopt-report-embed, Qopt-report-embed

Determines whether special loop information annotations will be embedded in the object file and/or the assembly file when it is generated.

qopt-report-file, Qopt-report-file

Specifies that the output for the optimization report goes to a file, stderr, or stdout.

qopt-report-filter, Qopt-report-filter

Tells the compiler to find the indicated parts of your application, and generate optimization reports for those parts of your application.

qopt-report-format, Qopt-report-format

Specifies the format for an optimization report.

qopt-report-help, Qopt-report-help

Displays the optimizer phases available for report generation and a short description of what is reported at each level.

qopt-report-names, Qopt-report-names

Specifies whether mangled or unmangled names should appear in the optimization report.

qopt-report-per-object, Qopt-report-per-object

Tells the compiler that optimization report information should be generated in a separate file for each object.

qopt-report-phase, Qopt-report-phase

Specifies one or more optimizer phases for which optimization reports are generated.

qopt-report-routine, Qopt-report-routine

Tells the compiler to generate an optimization report for each of the routines whose names contain the specified substring.

qopt-streaming-stores, Qopt-streaming-stores

Enables generation of streaming stores for optimization.

qopt-subscript-in-range, Qopt-subscript-in-range

Determines whether the compiler assumes that there are no "large" integers being used or being computed inside loops.

qopt-zmm-usage, Qopt-zmm-usage

Defines a level of zmm registers usage.

qoverride-limits, Qoverride-limits

Lets you override certain internal compiler limits that are intended to prevent excessive memory usage or compile times for very large, complex compilation units.

Qpar-adjust-stack

Tells the compiler to generate code to adjust the stack size for a fiber-based main thread.

Qpatchable-addresses

Tells the compiler to generate code such that references to statically assigned addresses can be patched.

Qpchi

Enable precompiled header coexistence to reduce build time.

Qsafeseh

Registers exception handlers for safe exception handling.

Qsfalign

Specifies stack alignment for functions. This is a deprecated option that may be removed in a future release..

qsimd-honor-fp-model, Qsimd-honor-fp-model

Tells the compiler to obey the selected floating-point model when vectorizing SIMD loops.

qsimd-serialize-fp-reduction, Qsimd-serialize-fp-reduction

Tells the compiler to serialize floating-point reduction when vectorizing SIMD loops.

qtbb, Qtbb

Tells the compiler to link to the Intel® oneAPI Threading Building Blocks ( oneTBB ) libraries.

Quse-msasm-symbols

Tells the compiler to use a dollar sign ("$") when producing symbol names.

Qvc

Specifies compatibility with Microsoft Visual C++* (MSVC) or Microsoft Visual Studio*.

Qvla

Determines whether variable length arrays are enabled.

rcd, Qrcd

Enables fast float-to-integer conversions. This is a deprecated option that may be removed in a future release.

regcall, Qregcall

Tells the compiler that the __regcall calling convention should be used for functions that do not directly specify a calling convention.

restrict, Qrestrict

Determines whether pointer disambiguation is enabled with the restrict qualifier.

RTC

Enables checking for certain run-time conditions.

S

Causes the compiler to compile to an assembly file only and not link.

save-temps , Qsave-temps

Tells the compiler to save intermediate files created during compilation.

scalar-rep, Qscalar-rep

Enables or disables the scalar replacement optimization done by the compiler as part of loop transformations.

shared

Tells the compiler to produce a dynamic shared object instead of an executable.

shared-intel

Causes Intel-provided libraries to be linked in dynamically.

shared-libgcc

Links the GNU libgcc library dynamically.

showIncludes

Tells the compiler to display a list of the include files.

simd, Qsimd

Enables or disables compiler interpretation of simd pragmas.

simd-function-pointers, Qsimd-function-pointers

Enables or disables pointers to simd-enabled functions.

sox

Tells the compiler to save the compilation options and version number in the executable file. It also lets you choose whether to include lists of certain functions .

static

Prevents linking with shared libraries.

static-intel

Causes Intel-provided libraries to be linked in statically.

static-libgcc

Links the GNU libgcc library statically.

staticlib

Invokes the libtool command to generate static libraries.

static-libstdc++

Links the GNU libstdc++ library statically.

std, Qstd

Tells the compiler to conform to a specific language standard.

stdlib

Lets you select the C++ library to be used for linking.

strict-ansi

Tells the compiler to implement strict ANSI conformance dialect.

sysroot

Specifies the root directory where headers and libraries are located.

T

Tells the linker to read link commands from a file.

Tc

Tells the compiler to process a file as a C source file.

TC

Tells the compiler to process all source or unrecognized file types as C source files.

Tp

Tells the compiler to process a file as a C++ source file.

traceback

Tells the compiler to generate extra information in the object file to provide source file traceback information when a severe error occurs at run time.

U

Undefines any definition currently in effect for the specified macro .

u (Linux*)

Tells the compiler the specified symbol is undefined.

u (Windows*)

Disables all predefined macros and assertions.

undef

Disables all predefined macros .

unroll , Qunroll

Tells the compiler the maximum number of times to unroll loops.

unroll-aggressive, Qunroll-aggressive

Determines whether the compiler uses more aggressive unrolling for certain loops.

use-asm, Quse-asm

Tells the compiler to produce objects through the assembler. This is a deprecated option that may be removed in a future release.

use-intel-optimized-headers, Quse-intel-optimized-headers

Determines whether the performance headers directory is added to the include path search list.

use-msasm

Enables the use of blocks and entire functions of assembly code within a C or C++ file.

V

Displays the compiler version information.

V (Windows*)

Places the text string specified into the object file being generated by the compiler.

v

Specifies that driver tool commands should be displayed and executed.

vd

Enables or suppresses hidden vtordisp members in C++ objects.

vec, Qvec

Enables or disables vectorization.

vecabi, Qvecabi

Determines which vector function application binary interface (ABI) the compiler uses to create or call vector functions.

vec-guard-write, Qvec-guard-write

Tells the compiler to perform a conditional check in a vectorized loop.

vec-threshold, Qvec-threshold

Sets a threshold for the vectorization of loops.

version

Tells the compiler to display GCC-style version information.

vmb

Selects the smallest representation that the compiler uses for pointers to members.

vmg

Selects the general representation that the compiler uses for pointers to members.

vmm

Enables pointers to class members with single or multiple inheritance.

vms

Enables pointers to members of single-inheritance classes.

vmv

Enables pointers to members of any inheritance type.

w

Disables all warning messages.

w, W

Specifies the level of diagnostic messages to be generated by the compiler.

Wa

Passes options to the assembler for processing.

Wabi

Determines whether a warning is issued if generated code is not C++ ABI compliant.

Wall

Enables warning and error diagnostics.

watch

Tells the compiler to display certain information to the console output window.

Wbrief

Tells the compiler to display a shorter form of diagnostic output.

Wcheck

Tells the compiler to perform compile-time code checking for certain code.

Wcheck-unicode-security

Determines whether the compiler performs source code checking for Unicode vulnerabilities.

Wcomment

Determines whether a warning is issued when /* appears in the middle of a /* */ comment.

Wcontext-limit, Qcontext-limit

Set the maximum number of template instantiation contexts shown in diagnostic.

wd, Qwd

Disables a soft diagnostic. This is a deprecated option that may be removed in a future release.

Wdeprecated

Determines whether warnings are issued for deprecated C++ headers.

we, Qwe

Changes a soft diagnostic to an error. This is a deprecated option that may be removed in a future release.

Weffc++, Qeffc++

Enables warnings based on certain C++ programming guidelines.

Werror, WX

Changes all warnings to errors.

Werror-all

Causes all warnings and currently enabled remarks to be reported as errors.

Wextra-tokens

Determines whether warnings are issued about extra tokens at the end of preprocessor directives.

Wformat

Determines whether argument checking is enabled for calls to printf, scanf, and so forth.

Wformat-security

Determines whether the compiler issues a warning when the use of format functions may cause security problems.

Wic-pointer

Determines whether warnings are issued for conversions between pointers to distinct scalar types with the same representation.

Winline

Warns when a function that is declared as inline is not inlined.

Wl

Passes options to the linker for processing.

WL

Tells the compiler to display a shorter form of diagnostic output.

Wmain

Determines whether a warning is issued if the return type of main is not expected.

Wmissing-declarations

Determines whether warnings are issued for global functions and variables without prior declaration.

Wmissing-prototypes

Determines whether warnings are issued for missing prototypes.

wn, Qwn

Controls the number of errors displayed before compilation stops. This is a deprecated option that may be removed in a future release.

Wnon-virtual-dtor

Tells the compiler to issue a warning when a class appears to be polymorphic, yet it declares a non-virtual one.

wo, Qwo

Tells the compiler to issue one or more diagnostic messages only once. This is a deprecated option that may be removed in a future release.

Wp

Passes options to the preprocessor.

Wp64

Tells the compiler to display diagnostics for 64-bit porting.

Wpch-messages

Determines whether the compiler shows precompiled header (PCH) informational messages.

Wpointer-arith

Determines whether warnings are issued for questionable pointer arithmetic.

Wport

Tells the compiler to issue portability diagnostics.

wr, Qwr

Changes a soft diagnostic to an remark. This is a deprecated option that may be removed in a future release.

Wremarks

Tells the compiler to display remarks and comments.

Wreorder

Tells the compiler to issue a warning when the order of member initializers does not match the order in which they must be executed.

Wreturn-type

Determines whether warnings are issued when a function is declared without a return type, when the definition of a function returning void contains a return statement with an expression, or when the closing brace of a function returning non-void is reached.

Wshadow

Determines whether a warning is issued when a variable declaration hides a previous declaration.

Wsign-compare

Determines whether warnings are issued when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned.

Wstrict-aliasing

Determines whether warnings are issued for code that might violate the optimizer's strict aliasing rules.

Wstrict-prototypes

Determines whether warnings are issued for functions declared or defined without specified argument types.

Wtrigraphs

Determines whether warnings are issued if any trigraphs are encountered that might change the meaning of the program.

Wuninitialized

Determines whether a warning is issued if a variable is used before being initialized.

Wunknown-pragmas

Determines whether a warning is issued if an unknown #pragma directive is used.

Wunused-function

Determines whether a warning is issued if a declared function is not used.

Wunused-variable

Determines whether a warning is issued if a local or non-constant static variable is unused after being declared.

ww, Qww

Changes a soft diagnostic to an warning. This is a deprecated option that may be removed in a future release.

Wwrite-strings

Issues a diagnostic message if const char * is converted to (non-const) char *.

X

Removes standard directories from the include file search path.

x (type option)

All source files found subsequent to -x type will be recognized as a particular type.

x, Qx

Tells the compiler which processor features it may target, including which instruction sets and optimizations it may generate.

xHost, QxHost

Tells the compiler to generate instructions for the highest instruction set available on the compilation host processor.

Xlinker

Passes a linker option directly to the linker.

Y-

Tells the compiler to ignore all other precompiled header files.

Yc

Tells the compiler to create a precompiled header file.

Yd

Tells the compiler to add complete debugging information in all object files created from a precompiled header file when option /Zi or /Z7 is specified. This is a deprecated option that may be removed in a future release.

Yu

Tells the compiler to use a precompiled header file.

Za

Disables Microsoft* Visual C++* compiler language extensions.

Zc

Lets you specify ANSI C standard conformance for certain language features.

Ze

Enables Microsoft* Visual C++* compiler language extensions. This is a deprecated option that may be removed in a future release.

Zg

Tells the compiler to generate function prototypes. This is a deprecated option that may be removed in a future release.

Zi, Z7 , ZI

Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file.

Zl

Causes library names to be omitted from the object file.

Zo

Enables or disables generation of enhanced debugging information for optimized code.

Zp

Specifies alignment for structures on byte boundaries.

Zs

Tells the compiler to check only for correct syntax.