The table in this section summarizes Intel® C++ compiler options used on Linux* OS and Mac OS* X systems. Each summary also shows the equivalent compiler options on Windows* operating systems, if any.
Some compiler options are only available on systems using certain architectures, as indicated by these labels:
Label |
Meaning |
---|---|
i32 |
The option is available on systems using IA-32 architecture. |
i64em |
The option is available on systems using Intel® 64 architecture. |
i64 |
The option is available on systems using IA-64 architecture. |
If "only" appears in the label, the option is only available on the identified system or architecture.
If no label appears, the option is available on all supported systems and architectures.
For more details on the options, refer to the Alphabetical Compiler Options section.
The Intel® C++ Compiler includes the Intel® Compiler Option Mapping tool. This tool lets you find equivalent options by specifying compiler option -map-opts (Linux and Mac OS X) or /Qmap-opts (Windows).
For information on conventions used in this table, see Conventions.
The following table summarizes all supported Linux OS and Mac OS X options. It also shows equivalent Windows* OS options, if any.
Option |
Description |
Default |
Equivalent Windows OS Option |
---|---|---|---|
-A<name>[(<value>)] |
Specifies an identifier for an assertion. |
OFF |
/QA<name>[(<value>)] |
-A- |
Disables all predefined macros. |
OFF |
/QA[-] |
-[no-]alias-args |
Determines whether function arguments can alias each other. Deprecated; use -fargument-[no]alias. |
-alias-args |
/Qalias-args[-] |
-[no-]alias-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. |
-no-alias-const |
/Qalias-const[-] |
-[no]align |
Determines whether variables and arrays are naturally aligned. |
OFF |
None |
-ansi |
Enables language compatibility with the gcc option -ansi. |
OFF |
None |
-[no-]ansi-alias |
Enables or disables use of ANSI aliasing rules in optimizations. |
-no-ansi-alias |
/Qansi-alias[-] |
-auto-ilp32 |
Instructs the compiler to analyze the program to determine if there are 64-bit pointers which can be safely shrunk into 32-bit pointers. |
OFF |
/Qauto-ilp32 |
-ax<processor> |
Tells the compiler to generate multiple, processor-specific auto-dispatch code paths for Intel processors if there is a performance benefit. |
OFF |
/Qax<processor> |
-B<dir> |
Specifies a directory that can be used to find include files, libraries, and executables. |
OFF |
None |
-Bdynamic |
Enables dynamic linking of libraries at run time. |
OFF |
None |
-Bstatic |
Enables static linking of a user's library. |
OFF |
None |
-c |
Prevents linking. |
OFF |
/c |
-C |
Place comments in preprocessed source output. |
OFF |
/C |
-[no-]c99 |
Determines whether C99 support is enabled for C programs. |
-no-c99 |
/Qc99[-] |
-[no-]check-uninit |
Determines whether checking occurs for uninitialized variables. |
-no-check-uninit |
None |
-[no-]complex-limited-range |
Determines whether the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX is enabled |
-no-complex-limited-range |
/Qcomplex-limited-range[-] |
-cxxlib[=<dir>] |
Determines whether the compile links using the C++ run-time libraries and header files provided by gcc. |
C++: -cxxlib |
None |
-D<name>[=<value>] |
Defines a macro name that can be associated with an optional value. |
OFF |
/D<name>[=<value>] |
-dD |
Same as -dN, but outputs #define directives in preprocessed source. |
OFF |
/QdD |
-debug [keyword] |
Enables or disables generation of debugging information. |
-debug none |
/debug [keyword] |
-diag-<type> <diag-list> |
Controls the display of diagnostic information. |
OFF |
/Qdiag-<type>:<diag-list> |
-diag-dump |
Tells the compiler to print all enabled diagnostic messages and stop compilation |
OFF |
/Qdiag-dump |
-diag-enable sv-include |
Tells the Static Verifier to analyze include files and source files when issuing diagnostic messages. |
OFF |
/Qdiag-enable sv-include |
-diag-error-limit <n> |
Specifies the maximum number of errors allowed before compilation stops. |
<n>=30 |
/Qdiag-error-limit:<n> |
-diag-file[=file] |
Causes the results of diagnostic analysis to be output to a file. |
OFF |
/Qdiag-file[:file] |
-diag-file-append[=file] |
Causes the results of diagnostic analysis to be appended to a file. |
OFF |
/Qdiag-file-append[:file] |
-[no-]diag-id-numbers |
Tells the compiler to display diagnostic messages by using their ID number values. |
-diag-id-numbers |
/Qdiag-id-numbers[-] |
-diag-once <id>[,<id>,...] |
Tells the compiler to issue one or more diagnostic messages only once. |
OFF |
/Qdiag-once:<id>[,<id>,...] |
-dM |
Output macro definitions in effect after preprocessing (use with -E). |
OFF |
/QdM |
-dN |
Same as -dD, but output #define directives contain only macro names. |
OFF |
/QdN |
-dryrun |
Specifies that driver tool commands should be shown but not executed. |
OFF |
None |
-dumpmachine |
Displays the target machine and operating system configuration. |
OFF |
None |
-dumpversion |
Displays the version number of the compiler. |
OFF |
None |
-dynamiclib |
Invokes the libtool command to generate dynamic libraries. |
OFF |
None |
-dynamic-linker <file> |
Specifies a dynamic linker other than the default. |
OFF |
None |
-E |
Preprocess to stdout. |
OFF |
/E |
-[no-]early-template-check |
Lets you semantically check template function template prototypes before instantiation. |
-no-early-template-check |
None |
-EP |
Preprocess to stdout omitting #line directives. |
OFF |
/EP |
-export |
Enables support for the C++ export template feature. |
OFF |
None |
-export-dir <dir> |
Specifies a directory name for the exported template search path. |
OFF |
None |
F<dir> |
Adds framework directory to head of include file search path. |
OFF |
None |
-fabi-version=<n> |
Instructs the compiler to select a specific ABI implementation. |
Varies |
None |
-f[no-]alias |
Tells the compiler to assume aliasing in a program. |
-falias |
/Oa |
-f[no-]align-functions[=<n>] |
Aligns functions on optimal byte boundary. |
-fno-align-functions |
/Qfnalign[:<n>][-] |
falign-stack=<mode> |
Tells the compiler the stack alignment to use on entry to routines. |
OFF |
-falign-stack=default |
-fargument-[no]alias |
Determines whether function arguments can alias each other. |
-fargument-alias |
/Qalias-args[-] |
-fargument-noalias-global |
Tells the compiler that arguments cannot alias each other and cannot alias global storage. |
OFF |
None |
-fasm-blocks |
Enables the use of blocks and entire functions of assembly code within a C or C++ file. |
OFF |
None |
-fast |
Maximizes speed across the entire program. |
OFF |
/fast |
-[no-]fast-transcendentals |
Enables the compiler to replace calls to transcendental functions with faster but less precise implementation. |
OFF |
/Qfast-transcendentaks[-] |
-f[no-]builtin[-func] |
Enables or disables inline expansion of intrinsic functions. |
OFF |
/Oi[-] |
-fcode-asm |
Produces an assembly listing with machine code annotations. |
OFF |
None |
-f[no-]common |
Determines whether the compiler treats common symbols as global definitions. |
-fcommon |
None |
-fno-exceptions |
Enables exception handling table generation. |
C++: -fexceptionsC: -fno-exceptions |
None |
-f[no-]fnalias |
Assume aliasing within functions. |
-ffnalias |
/Ow[-] |
-ffreestanding |
Ensures that compilation takes place in a freestanding environment. |
OFF |
/Qfreestanding |
-ffunction-sections |
Places each function in its own COMDAT section. |
OFF |
None |
-f[no-]inline |
Tells the compiler to inline functions declared with __inline and perform C++ inlining. |
-fno-inline |
None |
-f[no-]inline-functions |
Enables function inlining for single file compilation. |
-finline-functions |
None |
-finline-limit=<n> |
Lets you specify the maximum size of a function to be inlined. |
OFF |
None |
-f[no-]instrument-functions |
Determines whether function entry and exit points are instrumented. |
-fno-instrument-functions |
/Qinstrument-functions[-] |
-f[no-]jump-tables |
Determines whether jump tables are generated for switch statements. |
-fjump-tables |
None |
-f[no-]keep-static-consts |
Tells the compiler to preserve allocation of variables that are not referenced in the source. |
-fno-keep-static-consts |
/Qkeep-static-consts[-] |
-[no-]fma |
enable/disable the combining of floating point multiplies and add/subtract operations |
-fma |
/Qfma[-] |
-f[no-]math-errno |
Tells the compiler that errno can be reliably tested after calls to standard math library functions. |
-fno-math-errno |
None |
-fminshared |
Specifies that a compilation unit is a component of a main program and should not be linked as part of a shareable object. |
OFF |
None |
-fmudflap |
The compiler instruments risky pointer operations to prevent buffer overflows and invalid heap use. |
OFF |
None |
-fno-gnu-keywords |
Does not recognize typeof as keyword. |
OFF |
None |
-fno-implicit-inline-templates |
Tells the compiler to not emit code for implicit instantiations of inline templates. |
OFF |
None |
-fno-implicit-templates |
Tells the compiler to not emit code for non-inline templates that are instantiated implicitly. |
OFF |
None |
-fno-operator-names |
Disables support for the operator names specified in the standard. |
OFF |
None |
-fno-rtti |
Disables support for run-time type information. |
OFF |
None |
-f[no-]non-call-exceptions |
Allows trapping instructions to throw C++ exceptions. |
-fno-non-call-exceptions |
None |
-f[no-]non-lvalue-assign |
Determines whether casts and conditional expressions can be used as lvalues. |
-fnon-lvalue-assign |
None |
-[no-]fnsplit |
Enables or disables function splitting (enabled with -prof-use). |
-no-fnsplit |
/Qfnsplit[-] |
-f[no-]omit-frame-pointer |
Enables or disables using EBP as a general-purpose register in optimizations. |
-fomit-frame-pointer |
/Oy[-] |
-fp-model keyword |
Controls the semantics of floating-point calculations. |
-fp-model fast=1 |
/fp keyword: |
-[no-]fp-port |
Round floating-point results at assignments and casts (some speed impact). |
-no-fp-port |
/Qfp-port[-] |
-[no-]fp-relaxed |
Enables or disables use of faster but slightly less accurate code sequences for math functions. |
-no-fp-relaxed |
/Qfp-relaxed[-] |
-fp-speculation=<mode>=mode |
Tells the compiler the mode in which to speculate on floating-point operations. |
-fp-speculation=fast |
/Qfp-speculation:<mode> |
-fp-stack-check |
Enables FP stack checking after every function/procedure call. |
OFF |
/Qfp-stack-check |
-fpack-struct |
Specifies that structure members should be packed together. |
OFF |
None |
-fpascal-strings |
Allow for Pascal-style string literals. |
OFF |
None |
-fpermissive |
Allow for non-conformant code. |
OFF |
None |
-f[no-]pic |
Determines whether the compiler generates position-independent code. |
varies |
None |
-fpie |
Tells the compiler to generate position-independent code. The generated code can only be linked into executables. |
OFF |
None |
-fr32 |
Disables the use of the high floating-point registers. |
OFF |
None |
-freg-struct-return |
Return struct and union values in registers when possible. |
OFF |
None |
-fshort-enums |
Tells the compiler to allocate as many bytes as needed for enumerated types. |
OFF |
None |
-fsource-asm |
Produce assembly file with optional source annotations. |
OFF |
/FAs |
-f[no-]stack-protector |
Same as -f[no-]stack-security-check. |
OFF |
None |
-f[no-]stack-security-check |
Determines whether the compiler generates code that detects some buffer overruns. |
-fno-stack-security-check |
/GS[-] |
-fsyntax-only |
Performs syntax and semantic checking only (no object file produced). |
OFF |
/Zs |
-ftemplate-depth-<n> |
Control the depth in which recursive templates are expanded. |
OFF |
/Qtemplate-depth-<n> |
-ftls-model=model |
Change thread local storage mode. |
OFF |
None |
-ftrapuv |
Trap uninitialized variables. |
OFF |
/Qtrapuv |
-[no-]ftz |
Enables or disables flush denormal results to zero. |
i64: -no-ftz |
/Qftz[-] |
-funroll-loops |
Same as -unroll. |
ON |
/Qunroll |
-funroll-all-loops |
Unroll all loops even if the number of iterations is uncertain when the loop is entered. |
OFF |
None |
-f[no-]unsigned-bitfields |
Changes default bitfield type to unsigned. |
-fno-unsigned-bitfields |
None |
-funsigned-char |
Changes default char type to unsigned. |
OFF |
None |
-f[no-]verbose-asm |
Produces an assembly listing file with compiler comments. |
-fno-verbose-asm |
None |
-fvisibility=keyword |
Specifies the default visibility for global symbols. |
-fvisibility=default |
None |
-fvisibility-inlines-hidden |
Causes inline member functions to be marked hidden. |
OFF |
None |
-g |
Generates full debugging information in the object file. |
OFF |
/Zi, Z7 |
-g0 |
Disables generation of symbolic debug information. |
OFF |
None |
-[no-]gcc |
Defines or undefines GNU macros. |
-gcc |
None |
-gcc-sys |
Defines GNU macros only during compilation of system headers. |
OFF |
None |
-gcc-name=<dir> |
Specifies the location of the gcc compiler. |
OFF |
None |
-gcc-version |
Provides compatible behavior with gcc. |
OFF |
None |
-gdwarf-2 |
Enables generation of debug information using the DWARF2 format. |
OFF |
None |
-[no-]global-hoist |
Enables or disables external globals to be load safe. |
-global-hoist |
/Qglobal-hoist[-] |
-gxx-name=<dir> |
Uses the g++ compiler as environment for C++ compilation. |
OFF |
None |
-H |
Prints include file order. |
OFF |
/QH |
-help [category] |
Displays all available compiler options or a category of compiler options. |
OFF |
/help [category] |
-help-pragma |
Displays all supported pragmas. |
OFF |
/Qhelp-pragma |
-I<dir> |
Adds directory to include file search path. |
OFF |
/I<dir> |
-[no-]icc |
Defines certain Intel compiler macros. |
-icc |
None |
-idirafter<dir> |
Adds a directory to the second include file search path. |
OFF |
None |
-imacros <file> |
Specifies a lead header in a translation unit. |
OFF |
None |
-[no-]inline-calloc |
tells the compiler to inline calls to calloc() as calls to malloc() and memset(). |
-no-inline-calloc |
/Qinline-calloc[-] |
-inline-debug-info |
preserve the source position of inlined code instead of assigning the call-site source position to inlined code |
OFF |
/Qinline-debug-info |
-[no-]inline-factor[=n] |
Specify percentage multiplier that should be applied to all inlining options that define upper limits. |
-no-inline-factor |
/Qinline-factor[=n][-] |
-inline-forceinline |
Inline routine whenever the compiler can do so. |
OFF |
/Qinline-forceinline |
-inline-level=<n>l |
control inline expansion |
-inline-level=2 (if -O2 or -O3 is in effect) |
/O<n>b |
-[no-]inline-max-per-compile[=n] |
Specify maximum number of times inlining may be applied to an entire compilation unit. |
-no-inline-max-per-compile |
/Qinline-max-per-compile[=n][-] |
-[no-]inline-max-per-routine[=n] |
Specify maximum number of times the inliner may inline into a particular routine. |
-no-inline-max-per-routine |
/Qinline-max-per-routine[=n][-] |
-[no-]inline-max-size[=n] |
Specify lower limit for the size of what the inliner considers to be a large routine. |
-no-inline-max-size |
/Qinline-max-size[=n][-] |
-[no-]inline-max-total-size[=n] |
Specify how much larger a routine can normally grow when inline expansion is performed. |
-no-inline-max-total-size |
/Qinline-max-total-size[=n][-] |
-[no-]inline-min-size[=n] |
Specify upper limit for the size of what the inliner considers to be a small routine. |
-no-inline-min-size |
/Qinline-min-size[=n][-] |
-ip |
Enables single-file IP optimizations (within files). |
OFF |
/Qip |
-ip-no-inlining |
Disables full and partial inlining (requires -ip or -ipo). |
OFF |
/Qip-no-inlining |
-ip-no-pinlining |
Disables partial inlining (requires -ip or -ipo). |
OFF |
/Qip-no-pinlining |
-IPF-flt-eval-method0 |
Evaluates floating-point operands evaluated to the precision indicated by program; deprecated. |
OFF |
/QIPF-flt-eval-method0 |
-[no-]IPF-fltacc |
Enables or disables optimizations that affect floating point accuracy; deprecated. |
-no-IPF-fltacc |
/QIPF-fltacc[-] |
-[no-]IPF-fma |
Enables or disable the combining of floating point multiplies and add/subtract operations; deprecated, use -fma. |
-IPF-fma |
/QIPF-fma[-] |
-[no-]IPF-fp-relaxed |
Enables or disables use of faster but slightly less accurate code sequences for math functions; deprecated, use -fp-relaxed. |
-no-IPF-fp-relaxed |
/QIPF-fp-relaxed[-] |
-ipo[=n] |
Enables multi-file IP optimizations (between files). |
OFF |
/Qipo[n] |
-ipo-c |
Generates a multi-file object file (ipo_out.o). |
OFF |
/Qipo-c |
-ipo-jobs<n> |
Specifies the number of commands to be executed simultaneously during the link phase of Interprocedural Optimization (IPO). |
OFF |
/Qipo-jobs:<n> |
-ipo-S |
Generates a multi-file assembly file (ipo_out.s). |
OFF |
/Qipo-S |
-ipo-separate |
Creates one object file for every source file. |
OFF |
/Qipo-separate |
-iprefix <prefix> |
Indicates the prefix for referencing directories containing header files. |
OFF |
None |
-iquote <dir> |
Adds directory for files included with quotes to front of include files search path. |
OFF |
None |
-isystem<dir> |
Specifies a directory to add to the system include path. |
OFF |
None |
-ivdep-parallel |
Makes ivdep directives mean no loop carried dependencies. |
OFF |
/Qivdep-parallel |
-iwithprefix<dir> |
Appends <dir> to prefix passed in by -iprefix and puts it at the end of the include search path. |
OFF |
None |
-iwithprefixbefore <dir> |
Similar to -iwithprefix except include directory is placed in the same place as -I directories. |
OFF |
None |
-Kc++ |
Compiles all source or unrecognized file types as C++ source files. |
OFF |
/TP |
-kernel |
Generates code for inclusion in the kernel. |
OFF |
None |
-l<string> |
Tells the linker to search for a specified library. |
OFF |
None |
-L<dir> |
Tells the linker to search for libraries in a specified directory before searching for them in the standard directories . |
OFF |
None |
-m[<processor>] |
Tells the compiler to generate optimized code specialized for the processor that executes your program. |
OFF |
/arch:<processor> |
-M |
Generates makefile dependency information. |
OFF |
/QM |
-m32 |
Tells the compiler to generate code for IA-32 architecture. |
OFF |
None |
-m64 |
Tells the compiler to generate code for Intel® 64 architecture. |
OFF |
None |
-malign-double |
Aligns double, long double, and long long types for systems based on IA-32 architecture. |
OFF |
None |
-malign-mac68k |
Aligns structure fields on 2-byte boundaries (m68k compatible). |
OFF |
None |
-malign-natural |
Aligns larger types on natural size-based boundaries (overrides ABI). |
OFF |
None |
-malign-power |
Aligns based on ABI-specified alignment rules. |
ON |
None |
-map-opts |
Enables option mapping tool. |
OFF |
/Qmap-opts |
-march=<processor> |
Generates code for a specified processor. |
i32: OFF |
None |
-mcmodel=<mem_model> |
Uses a specific memory model to generate code and store data. |
-mcmodel=small |
None |
-MD |
Preprocesses and compiles, generating output file containing dependency information ending with extension .d. |
OFF |
/QMD |
-mdynamic-no-pic |
Generates code that is not position-independent but has position-independent external references. |
OFF |
None |
-MF<file> |
Generates makefile dependency information in file (must specify -M or -MM). |
OFF |
/QMF<file> |
-mfixed-range |
Reserves certain register for use by the Linux* kernel. |
OFF |
None |
-MG |
Similar to -M, but treat missing header files as generated files. |
OFF |
/QMG |
-minstruction=[no]movbe |
Enables or disables generation of MOVBE instructions. |
-minstruction=movbe |
None |
-MM |
Similar to -M, but do not include system header files. |
OFF |
/QMM |
-MMD |
Similar to -MD, but do not include system header files. |
OFF |
/QMMD |
-mp |
Maintains floating-point precision while disabling some optimization. |
OFF |
None |
-MP |
Adds a phony target for each dependency. |
OFF |
None |
-mp1 |
Improves precision (speed impact is less than -mp). |
OFF |
/Qprec |
-MQ<target> |
Changes the default target rule for dependency generation. |
OFF |
None |
-mregparm=<value> |
Controls the number registers used to pass integer argument. |
OFF |
None |
-m[no-]relax |
Passes linker option -relax to the linker. |
OFF |
None |
-m[no-]serialize-volatile |
Imposes strict memory access ordering for volatile data object references. |
OFF |
/Qserialize-volatile[-] |
-MT<target> |
Changes the default target rule for dependency generation. |
OFF |
/QMT<target> |
-mtune=<processor> |
Performs optimizations for specific processors. |
i32, i64em: -mtune=generic |
None |
-[no-]multibyte-chars |
Provides support for multi-byte characters |
ON |
/Qmultibyte-chars[-] |
-multiple-processes[=<n>] |
Creates multiple processes. |
OFF |
/MP[:<n>] |
-no-bss-init |
Disable placement of zero-initialized variables in BSS (use DATA). |
OFF |
/Qnobss-init |
-nodefaultlibs |
Prevents using standard libraries when linking. |
OFF |
None |
-nolib-inline |
Disables inline expansion of standard library or intrinsic functions. |
OFF |
None |
-nostartfiles |
Prevents the compiler from using standard startup files when linking. |
OFF |
None |
-nostdinc++ |
Do not search for header files in the standard directories for C++. |
OFF |
None |
-nostdlib |
Prevents the compiler from using standard libraries and startup files when linking. |
OFF |
None |
-o<file> |
Specifies name of output file. |
OFF |
/Fe<file> |
-O |
Enables optimizations. |
-O2 |
/O |
-O0 |
Disables optimizations. |
-O2 |
/Od |
-openmp |
Generates multi-threaded code based on the OpenMP* directives |
OFF |
/Qopenmp |
-openmp-lib <type> |
Lets you specify an OpenMP* run-time library to use for linking. |
-openmp-lib legacy |
/Qopenmp-lib:<type> |
-openmp-link <library> |
Links to static or dynamic OpenMP run-time libraries. |
-openmp-link dynamic |
/Qopenmp-link:<library> |
-openmp-profile |
Links with instrumented OpenMP run-time library to generate OpenMP profiling information. |
OFF |
/Qopenmp-profile |
-openmp-report<n> |
Controls the OpenMP parallelizer diagnostic level. |
-openmp-report1 |
/Qopenmp-report<n> |
-openmp-stubs |
Enables the user to compile OpenMP programs in sequential mode. |
OFF |
/Qopenmp-stubs |
-openmp-task <model> |
Lets you choose an OpenMP* tasking model. |
-openmp-task omp |
/Qopenmp-task:<model> |
-openmp-threadprivate <type> |
Lets you specify an OpenMP* threadprivate implementation. |
- openmp-threadprivate legacy |
/Qopenmp-threadprivate:<type> |
-opt-block-factor=<n> |
Lets you specify a loop blocking factor. |
OFF |
/Qopt-block-factor:<n> |
-[no]opt-calloc |
Tells the compiler to substitute a call to _intel_fast_calloc() for a call to calloc(). |
-no-opt-calloc |
/Qopenmp-stubs |
-[no-]opt-class-analysis |
Tells the compiler to use C++ class hierarchy information to analyze and resolve C++ virtual function calls at compile time. |
-no-opt-class-analysis |
/Qopt-class-analysis[-] |
-[no-]opt-jump-tables=keyword |
Enables or disables generation of jump tables for switch statements. |
- opt-jump-tables=default |
/Qopt-jump-tables[-] |
-[no-]opt-loadpair |
Enables or disables loadpair optimization. |
-no-opt-loadpair |
/Qopt-loadpair[-] |
-[no-]opt-malloc-options=<n> |
Lets you specify an alternate algorithm for malloc(). |
-opt-malloc-options=0 |
None |
-opt-mem-bandwidth<n> |
Enables performance tuning and heuristics to control memory bandwidth use among processors. |
-opt-mem-bandwidth0 |
/Qopt-mem-bandwidth<n> |
-[no-]opt-mod-versioning |
Enables or disables versioning of modulo operations for certain types of operands. |
- no-opt-mod-versioning |
/Qopt-mod-versioning[-] |
-[no-]opt-multi-version-aggressive |
tells the compiler to use aggressive multi-versioning to check for pointer aliasing and scalar replacement |
-no-opt-multi-version-aggressive |
/Qopt-multi-version-aggressive[-] |
-[no-]opt-prefetch[=<n>] |
Enables or disables prefetch insertion optimization. |
i32, i64em:-no-opt-prefetch |
/Qopt-prefetch[:<n>] |
-[no-]opt-prefetch-initial-values |
Enables or disables prefetches that are issued before a loop is entered. |
-no-opt-prefetch-initial-values |
/Qopt-prefetch-initial-values [-] |
-[no-]opt-prefetch-issue-excl-hint |
Enables or disables prefetches for stores with exclusive hin |
-no-opt-prefetch-issue-excl-hint |
/Qopt-prefetch-issue-excl-hint [-] |
-[no-]opt-prefetch-next-iteration |
Enables or disables prefetches for a memory access in the next iteration of a loop. |
-no-opt-prefetch-next-iteration |
/Qopt-prefetch-next-iteration [-] |
-[no-]opt-ra-region-strategy[=keyword] |
Selects the method that the register allocator uses to partition each routine into regions. |
-opt-ra-region-strategy=default |
/Qopt-ra-region-strategy[:keyword] |
-opt-report [<n>] |
Generates an optimization report to stderr. |
-opt-report 2 |
/Qopt-report[:<n>] |
-opt-report-file=<file> |
Specifies the file name for the generated report. |
OFF |
/Qopt-report-file:<file> |
-opt-report-help |
Displays the optimization phases available for reporting. |
OFF |
/Qopt-report-help |
-opt-report-phase=<phase> |
Specifies the phase that reports are generated against. |
OFF |
/Qopt-report-phase:<phase> |
-opt-report-routine=<string> |
Reports on routines containing the given name. |
OFF |
/Qopt-report-routine:<string> |
-opt-streaming-stores keyword |
Enables generation of streaming stores for optimization. |
-opt-streaming-stores auto |
/Qopt-streaming-stores:keyword |
-[no-]opt-subscript-in-range |
Enables or disables overflows in the intermediate computation of subscript expressions in loops. |
-[no-]opt-subscript-in-range |
/Qopt-subscript-in-range[-] |
-Os |
Enables speed optimizations, but disable some optimizations which increase code size for small speed benefit. |
OFF |
/Os |
-p |
Compiles and links for function profiling with gprof(1). |
OFF |
None |
-P (or -F) |
Preprocesses to file omitting #line directives. |
OFF |
/P |
-par-report[n] |
control the auto-parallelizer diagnostic level |
-par-report1 |
/Qpar-report[n] |
-[no-]par-runtime-control |
Generates code to perform run-time checks for loops that have symbolic loop bounds. |
-no-par-runtime-control |
/Qpar-runtime-control[-] |
-par-schedule-<keyword>[=n] |
Specifies a scheduling algorithm for DO loop iterations. |
OFF |
/Qpar-schedule-<keyword[[:] n ] |
-par-threshold[<n>] |
Sets threshold for the auto-parallelization of loops. |
-par-threshold100 |
/Qpar-threshold[[:]n] |
-parallel |
Enables the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel. |
OFF |
/Qparallel |
-pc<n> |
Enables control of floating-point significand precision. |
-pc80 |
/Qpc<n> |
-pch |
Enable sautomatic precompiled header file creation/usage. |
OFF |
/YX |
-pch-create <file> |
Creates precompiled header files. |
OFF |
/Yc[file] |
-pch-dir <dir> |
Tells the compiler where to find or create a file for precompiled headers. |
OFF |
None |
-pch-use {<file> | <dir>} |
Lets you use a specific precompiled header file. |
OFF |
None |
-pie |
Produces a position-independent executable on processors that support it. |
OFF |
None |
-pragma-optimization-level=<interpretation> |
Specifies which interpretation of the optimization_level pragma should be used if no prefix is specified. |
-pragma-optimization-level=Intel |
None |
-[no-]prec-div |
Improve precision of floating-point divides (some speed impact). |
-prec-div |
/Qprec-div[-] |
-[no-]prec-sqrt |
Determine if certain square root optimizations are enabled. |
-no-prec-sqrt |
/Qprec-sqrt[-] |
-print-multi-lib |
Prints information about where system libraries should be found. |
OFF |
None |
-[no-]prof-data-order |
Enables or disables data ordering if profiling information is enabled. |
-no-prof-data-order |
/Qprof-data-order[-] |
-prof-dir <dir> |
Specifies directory for profiling output files (*.dyn and *.dpi). |
OFF |
/Qprof-dir <dir> |
-prof-file <file> |
Specifies file name for profiling summary file. |
OFF |
/Qprof-file <file> |
-[no-]prof-func-groups |
Enables or disables function grouping if profiling information is enabled. |
-no-prof-func-groups |
None |
-[no-]prof-func-order |
Enables or disables function ordering if profiling information is enabled. |
-no-prof-func-order |
/Qprof-func-order [-] |
-prof-gen[x] |
Instruments program for profiling. |
OFF |
/Qprof-gen[x] |
-prof-hotness-threshold=<n> |
Lets you set the hotness threshold for function grouping and function ordering. |
OFF |
/Qprof-hotness-threshold:<n> |
-[no-]prof-src-dir |
Determines whether directory information of the source file under compilation is considered when looking up profile data records. |
-prof-src-dir |
/Qprof-src-dir [-] |
-prof-src-root=<dir> |
Lets you use relative directory paths when looking up profile data and specifies a directory as the base. |
OFF |
/Qprof-src-root=<dir> |
-prof-src-root-cwd |
Lets you use relative directory paths when looking up profile data and specifies the current working directory as the base. |
OFF |
/Qprof-src-root-cwd |
-prof-use |
Enables use of profiling information during optimization. |
OFF |
/Qprof-use |
-pthread |
Uses pthreads library for multithreading support. |
OFF |
None |
-Qlocation,<string>,<dir> |
Sets <dir> as the location of tool specified by <string>; supported tools depend on the operating system. |
OFF |
/Qlocation,<string>,<dir> |
-Qoption,<string>,<options> |
Passes options <options> to tool specified by <string>; supported tools depend on the operating system. |
OFF |
/Qoption,<string>,<options> |
-rcd |
Sets rounding mode to enable fast float-to-int conversions. |
OFF |
/Qrcd |
-rct |
Sets the internal FPU rounding control to Truncate. |
OFF |
/Qrct |
-reserve-kernel-regs |
Reserves registers f12-f15 and f32-f127 for use by the kernel. |
OFF |
None |
-[no]restrict |
Enables or disables the 'restrict' keyword for disambiguating pointers. |
OFF |
/Qrestrict[-] |
-S |
Compiles to assembly (.s) only, do not link (*I). |
OFF |
/S |
-[no-]save-temps |
Tells the compiler to save intermediate files created during compilation. |
-no-save-temps |
/Qsave-temps[-] |
-[no-]scalar-rep |
Enables or disables scalar replacement performed during loop transformation. |
-no-scalar-rep |
/Qscalar-rep[-] |
-shared |
Produces a dynamic shared object instead of an executable. |
OFF |
None |
-shared-intel |
Causes Intel-provided libraries to be linked in dynamically. |
OFF |
None |
-shared-libgcc |
Links the GNU libgcc library dynamically. |
OFF |
None |
-[no-]sox |
Enables or disables saving of compiler options and version in the executable. |
-no-sox |
/Qsox[-] |
-static |
Prevents linking with shared libraries. |
OFF |
None |
-staticlib |
Invokes the libtool command to generate static libraries. |
OFF |
None |
-static-intel |
Causes Intel-provided libraries to be linked in statically. |
OFF |
None |
-static-libgcc |
Links the GNU libgcc library statically. |
OFF |
None |
-std=<val> |
Conforms to a specific language standard. |
OFF |
/Qstd:<val> |
-strict-ansi |
Strict ANSI conformance dialect. |
OFF |
/Za |
-T <file> |
Tells the linker to read link commands from a file. |
OFF |
None |
-tcheck |
Generates instrumentation to detect multi-threading bugs. |
OFF |
/Qtcheck |
-tcollect [<lib>] |
Inserts instrumentation probes calling the Intel® Trace Collector API. |
OFF |
/Qtcollect[:<lib>] |
-tcollect-filter <file> |
Enables or disables the instrumentation of specified functions. |
OFF |
/Qtcollect-filter[:<file>] |
-tprofile |
Generates instrumentation to analyze multi-threading performance. |
OFF |
/Qtprofile |
-[no]traceback |
Specifies whether the compiler generates data to allow for source file traceback information at runtime. |
-notraceback |
/[no]traceback |
-U<name> |
remove predefined macro |
OFF |
/U<name> |
-unroll[n] |
Set maximum number of times to unroll loops. |
-unroll |
/Qunroll[:n] |
-[no-]unroll-aggressive |
Tells the compiler to use aggressive, complete unrolling for loops with small constant trip counts. |
OFF |
/Qunroll-aggressive[-] |
-[no-]use-asm |
Produces objects through assembler. |
-no-use-asm |
/Quse-asm[-] |
-use-msasm |
Accepts the Microsoft* MASM-style inlined assembly format. |
OFF |
None |
-V |
Displays compiler version information. |
OFF |
/QV |
-[no-]vec |
Enables or disables vectorization. |
-vec |
/Qvec[-] |
-[no-]vec-guard-write |
Tells the compiler to perform a conditional check in a vectorized loop. |
-no-vec-guard-write |
/Qvec-guard-write[-] |
-vec-report[<n>] |
Controls amount of vectorizer diagnostic information-opt-report generate an optimization report to stderr. |
-vec-report1 |
/Qvec-report[<n>] |
--version |
Displays GCC-style version information. |
OFF |
None |
-w |
Disables all warning messages. |
OFF |
/w |
-w<n> |
Determines which diagnostic message level is set. |
OFF |
/W<n> |
-Wa,<option1>[,<option2>,...] |
Passes options to the assembler for processing. |
OFF |
None |
-W[no-]abi |
Determines whether a warning is issued if generated code is not C++ ABI compliant. |
-Wno-abi |
None |
-Wall |
Enables all warnings. |
OFF |
/Wall |
-Wbrief |
Prints brief one-line diagnostics. |
OFF |
/WL |
-Wcheck |
Enables compile-time code checking for certain code. |
OFF |
/Wcheck |
-W[no-]comment |
Determines whether a warning is issued when /* appears in the middle of a /* */ comment. |
OFF |
None |
-Wcontext-limit=<n> |
Sets maximum number of template instantiation contexts shown in diagnostic. |
OFF |
/Qcontext-limit:<n> |
-wd<L1>[,< Ln>,...] |
Disables diagnostics L1 through Ln. |
OFF |
/Qwd<L1>[,< Ln>,...] |
-W[no-]deprecated |
Determines whether warnings are issued for deprecated features. |
OFF |
None |
-we<L1>[,< Ln>,...] |
Changes severity of soft diagnostics L1 through Ln to error. |
OFF |
/Qwe<L1>[,< Ln>,...] |
-Weffc++ |
Enables warnings based on certain C++ programming guidelines. |
OFF |
/Qeffc++ |
-Werror |
Forces warnings to be reported as errors. |
OFF |
/WX |
-Werror-all |
Changes all warnings and remarks to errors. |
OFF |
/Werror-all |
-W[no-]extra-tokens |
Determines whether warnings are issued about extra tokens at the end of preprocessor directives. |
-Wno-extra-tokens |
None |
-W[no-]format |
Determines whether argument checking is enabled for calls to printf, scanf, and so forth. |
-Wno-format |
None |
-W[no-]format-security |
Determines whether the compiler issues a warning when the use of format functions may cause security problems. |
-Wno-format-security |
None |
-Winline |
Enables diagnostics about what is inlined and what is not inlined. |
OFF |
None |
-Wl,<option1>[,<option2>,...] |
Passes options to the linker for processing. |
OFF |
None |
-W[no-]main |
Determines whether a warning is issued if the return type of main is not expected. |
-Wno-main |
None |
-W[no-]missing-declaration |
Determines whether warnings are issued for global functions and variables without prior declaration. |
-Wno-missing-declaration |
None |
-W[no-]missing-prototype |
Determines whether warnings are issued for missing prototypes. |
-Wno-missing-prototype |
None |
-Wnon-virtual-dtor |
Issues a warning when a class appears to be polymorphic, yet it declares a non-virtual one. (C++ only.) |
OFF |
None |
-wn<n> |
Prints a maximum number of errors. |
-wn100 |
/Qwn<n> |
-wo<L1>[,< Ln>,...] |
Issues one or more diagnostic messages only once. |
OFF |
/Qwo<L1>[,< Ln>,...] |
-Wp,<option1>[,<option2>,...] |
Passes options to the preprocessor. |
OFF |
None |
-Wp64 |
Prints diagnostics for 64-bit porting. |
OFF |
/Wp64 |
-W[no-]pointer-arith |
Determines whether warnings are issued for questionable pointer arithmetic. |
-Wno-pointer-arith |
None |
-W[no-]pragma-once |
Determines whether a warning is issued about the use of #pragma once. |
-Wno-pragma-once |
None |
-wr<L1>[,< Ln>,...] |
Changes severity of soft diagnostics L1 through Ln to remark. |
OFF |
/Qwr<L1>[,< Ln>,...] |
-Wreorder |
Issues a warning when the order of member initializers does not match the order in which they must be executed. |
OFF |
None |
-W[no-]return-type |
Determines whether warnings are issued when a function uses the default int return type. |
-Wno-return-type |
None |
-W[no-]shadow |
Determines whether a warning is issued when a variable declaration hides a previous declaration. |
-Wno-shadow |
None |
-W[no-]strict-prototypes |
Determines whether warnings are issued for functions declared or defined without specified argument types. |
-Wno-strict-prototypes |
None |
-W[no-]trigraphs |
Determines whether warnings are issued if any trigraphs are encountered. |
-Wno-trigraphs |
None |
-W[no-]uninitialized |
Determines whether a warning is issued if a variable is used before being initialized. |
-Wno-uninitialized |
None |
-W[no-]unknown-pragmas |
Determines whether a warning is issued if an unknown #pragma directive is used. |
-Wno-unknown-pragmas |
None |
-W[no-]unused-function |
Determines whether a warning is issued if a declared function is not used. |
-Wno-unused-function |
None |
-W[no-]unused-variable |
Determines whether a warning is issued if a local or non-constant static variable is unused after being declared. |
-Wno-unused-variable |
None |
-ww<L1>[,< Ln>,...] |
Changes soft diagnostics L1 through Ln to warning. |
OFF |
/Qww<L1>[,< Ln>,...] |
-Wwrite-strings |
Issues a diagnostic message if const char * is converted to (non-const) char *. |
OFF |
None |
-x<processor> |
Generates optimized code specialized for the Intel processor that executes your program. |
varies; see option description |
/Qx<processor> |
-X |
Removes standard directories from include file search path. |
OFF |
/X |
-Xlinker <option> |
Passes a linker option directly to the linker. |
OFF |
None |
-Zp[<n>] |
Specifies alignment for structures on byte boundaries. |
-Zp16 |
/Zp[<n>] |