Cross References of Compiler Options

This section provides a cross-reference table of compiler options used on Linux* and Mac OS* X that have equivalent compiler options on the Windows* operating systems.

Some compiler options are only available on certain systems, 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 no label appears, the option is available on all supported systems.

If "only" appears in the label, the option is only available on the identified system.

For more details on the options, refer to the Alphabetical Compiler Options section.

For information on conventions used in this table, see Notation Conventions.

Cross Reference of Linux and Mac OS Options to Windows Options

The following cross-reference table shows all supported Linux and Mac OS options and the equivalent supported Windows options, if any. If an equivalent option in the Linux and Mac OS X Option column is restricted to Linux, it is labeled as (Linux only).

The Intel® C++ Compiler includes the Intel® Compiler Option Mapping tool. The tool provides a way to compare ("map") options between Windows and Linux and the opposite: map-opts, Qmap-opts.

Linux and Mac OS X Option Windows Options Description

-[no-]alias-args

/Qalias-args[-]

enable (default)/disable C/C++ rule that function arguments may be aliased

-[no-]alias-const

/Qalias-const[-]

determines whether the input/output buffer rule is applied to functions with pointer-type arguments

-[no-]ansi-alias

/Qansi-alias[-]

enable/disable (default) use of ANSI aliasing rules in optimizations

-[no-]complex-limited-range

/Qcomplex-limited-range[-]

enable/disable (default) the use of the basic algebraic expansions of some complex arithmetic operations

-[no]debug [keyword]

/[no]debug[:keyword]

enable debug information and control output of enhanced debug information

-[no-]diag-id-numbers

/Qdiag-id-numbers[-]

tells the compiler to display diagnostic messages by using their ID number values

-[no-]fnsplit
(i64)

/Qfnsplit[-]
(i32, i64)

enable/disable function splitting (enabled with -prof-use)

-[no-]fp-port
(i32, i64em)

/Qfp-port[-]
(i32, i64em)

round floating point results at assignments and casts (some speed impact)

-[no-]ftz

/Qftz[-]

enable/disable flush denormal results to zero

-[no-]global-hoist

/Qglobal-hoist[-]

enable (default)/disable external globals are load safe

-[no-]inline-calloc
(i32, i64em)

/Qinline-calloc[-]
(i32, i64em)

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

-[no-]inline-factor[=n]

/Qinline-factor[=n][-]

specify percentage multiplier that should be applied to all inlining options that define upper limits

-[no-]inline-max-per-compile[=n]

/Qinline-max-per-compile[=n][-]

specify maximum number of times inlining may be applied to an entire compilation unit

-[no-]inline-max-per-routine[=n]

/Qinline-max-per-routine[=n][-]

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

-[no-]inline-max-size[=n]

/Qinline-max-size[=n][-]

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

-[no-]inline-max-total-size[=n]

/Qinline-max-total-size[=n][-]

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

-[no-]inline-min-size[=n]

/Qinline-min-size[=n][-]

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

-[no-]IPF-fltacc
(i64)

/QIPF-fltacc[-]
(i64)

enable/disable optimizations that affect floating point accuracy

-[no-]IPF-fma
(i64, Linux only)

/QIPF-fma[-]
(i64)

enable/disable the combining of floating point multiplies and add/subtract operations

-[no-]IPF-fp-relaxed
(i64, Linux only)

/QIPF-fp-relaxed[-]
(i64)

enable/disable use of faster but slightly less accurate code sequences for math functions

-[no-]multibyte-chars

/Qmultibyte-chars[-]

provide support for multi-byte characters

-[no-]opt-class-analysis

/Qopt-class-analysis[-]

tells the compiler to use C++ class hierarchy information to analyze and resolve C++ virtual function calls at compile time

-[no-]opt-multi-version-aggressive
(i32, i64em)
 

/Qopt-multi-version-aggressive[-]
(i32, i64em)

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

-[no-]opt-ra-region-strategy[=keyword]
(i32, i64em)

/Qopt-ra-region-strategy[:keyword]
(i32, i64em)

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

-[no-]par-runtime-control

/Qpar-runtime-control[-]

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

-[no-]prec-div

/Qprec-div[-]

improve precision of floating-point divides (some speed impact)

-[no-]prec-sqrt
(i32, i64em)

/Qprec-sqrt[-]
(i32, i64em)

determine if certain square root optimizations are enabled

-[no-]prefetch
(i64; Linux only)

/Qprefetch[-]
(i64)

enable (default)/disable prefetch insertion

-[no]restrict

/Qrestrict[-]

enable/disable the 'restrict' keyword for disambiguating pointers

-[no-]save-temps

/Qsave-temps[-]

tells the compiler to save intermediate files created during compilation

-[no-]scalar-rep

/Qscalar-rep[-]

enables/disbles scalar replacement performed during loop transformation

-[no-]sox

/Qsox[-]

enable/disable (default) saving of compiler options and version in the executable

-[no]traceback

/[no]traceback

specify whether the compiler generates data to allow for source file traceback information at runtime

-[no-]unroll-aggressive
(i32, i64em)

/Qunroll-aggressive[-]
(i32, i64em)

tells the compiler to use aggressive, complete unrolling for loops with small constant trip counts

-[no-]vec-guard-write
(i32, i64em)

/Qvec-guard-write[-]
(i32, i64em)

tells the compiler to perform a conditional check in a vectorized loop

-A-

/QA[-]

remove all predefined macros

-A<name>[(val)]

/QA<name>[(val)]

create an assertion 'name' having value 'val'

-ansi

/Za

equivalent to GNU -ansi

-auto-ilp32
(i64, i64em)

/Qauto-ilp32
(i64, i64em)

specify that the application cannot exceed a 32-bit address space (-ipo[n] required)

-ax<processor>
(i32, i64em)

/Qax<processor>
(i32, i64em)

generate multiple, processor-specific code paths if there is a performance benefit.

-C

/C

Place comments in preprocessed sources

-c

/c

compile to object (.o) only, do not link

-pch-create <file>

/Yc [file]

creates precompiled header file

-D<name>[=<text>]

/D<name>[{=|#}<text>]

defines macro

-dD

/QdD

outputs #define directives in preprocessed source

-diag-dump

/Qdiag-dump

tells the compiler to print all enabled diagnostic messages and stop compilation

-diag-enable port-win

 

enables warnings for GNU extensions that may cause errors when porting to Windows

-diag-enable sv-include

/Qdiag-enable:sv-include

tells the Static Verifier to analyze include files and source files when issuing diagnostic message

-diag-file[=file]

/Qdiag-file[:file]

causes the results of diagnostic analysis to be output to a file

-diag-file-append[=file]

/Qdiag-file-append[:file]

causes the results of diagnostic analysis to be appended to a file

-diag-type diag-list

/Qdiag-type:diag-list

controls the display of diagnostic information

-dM

/QdM

output macro definitions in effect after preprocessing (use with -E)

-E

/E

preprocess to stdout

-EP

/EP

preprocess to stdout omitting #line directives

-f[no-]align-functions[=n]
(i32, i64em)

/Qfnalign[-][:n]
(i32, i64em)

aligns functions on optimal byte boundary

-f[no-]builtin[-func]

/Oi[-]

enable/disable inline expansion of intrinsic functions

-f[no-]fnalias

/Ow[-]

assume aliasing within functions  (default)

-f[no-]instrument-functions

/Qinstrument-functions[-]

determines whether function entry and exit points are instrumented

-f[no-]keep-static-consts

/Qkeep-static-consts[-]

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

-f[no-]omit-frame-pointer

/Oy[-]

enable/diable using EBP as a general-purpose register in optimizations

-f[no-]stack-security-check

/GS[-]

enable/disable overflow security checks

-falias

/Oa

assume aliasing in program  (default)

-fargument-alias

/Qalias-args

same as -alias-args

-fargument-noalias

/Qalias-args-

same as -alias-args-

-fast

/fast

enables several optimizations from a single command

-fcode-asm

/FAc

produce assembly file with optional code annotations (requires -S)

-fdata-sections

/Gy

same as -ffunction-sections

-ffnalias

/Ow

assume aliasing within functions (default)

-ffunction-sections

/Gy

separate functions for the linker (COMDAT)

-fno-alias

/Oa-

assume no aliasing in program

-fno-builtin

/Oi-

disable inline expansion of intrinsic functions

-fno-fnalias

/Ow-

assume no aliasing within functions, but assume aliasing across calls

-fno-rtti

/GR-

disable RTTI support

-fp-model keyword

/fp:keyword

controls the semantics of floating-point calculations

-fp-speculation=mode

/Qfp-speculation=mode

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

-fp-stack-check
(i32,i64em)

/Qfp-stack-check
(i32,i64em)

enable fp stack checking after every function/procedure call

-fsource-asm

/FAs

produce assembly file with optional source annotations

-fsyntax-only

/Zs

perform syntax and semantic checking only (no object file produced)

-ftemplate-depth-<n>

/Qtemplate-depth-<n>

control the depth in which recursive templates are expanded

-ftrapuv

/Qtrapuv

trap uninitialized variables

-funroll-loops

/Qunroll

unroll loops based on default heuristics

-funsigned-char

/J

change default char type to unsigned

-g

/Zi, Z7

generate full debugging information in the object file

-H

/QH

print include file order

-help [category]

/help [category]

displays all available compiler options or a category of compiler options

-I<dir>

/I<dir>

add directory to include file search path

-inline-debug-info
(Linux only)

/Qinline-debug-info

preserve the source position of inlined code instead of assigning the call-site source position to inlined code

-inline-forceinline

/Qinline-forceinline

inline routine whenever the compiler can do so

-inline-level=<n>

/Ob<n>

control inline expansion

-ip

/Qip

enable single-file IP optimizations (within files)

-IPF-flt-eval-method0
(Linux only)

/QIPF-flt-eval-method0

floating point operands evaluated to the precision indicated by program

-IPF-fp-speculation<mode>
(Linux only)

/QIPF-fp-speculation<mode>

enable floation point speculations with the following <mode> conditions

-ip-no-inlining

/Qip-no-inlining

disable full and partial inlining (requires -ip or -ipo)

-ip-no-pinlining
(i32, i64em)

/Qip-no-pinlining
(i32, i64em)

disable partial inlining (requires -ip or -ipo)

-ipo[n]

/Qipo[n]

enable multi-file IP optimizations (between files)

-ipo-c

/Qipo-c

generate a multi-file object file (ipo_out.o)

-ipo-jobs<n>

/Qipo-jobs:<n>

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

-ipo-S

/Qipo-S

generate a multi-file assembly file (ipo_out.s)

-ipo-separate
(Linux only)

/Qipo-separate

create one object file for every source file

-ivdep-parallel
(i64; Linux only)

/Qivdep-parallel
(i64)

make ivdep directives mean no loop carried dependencies

-Kc++

/TP

compile all source or unrecognized file types as C++ source files

-M

/QM

generate makefile dependency information

-m[no-]serialize-volatile
(Linux only)

/Qserialize-volatile[-]

impose strict memory access ordering for volatile data object references

-map-opts
(Linux only)

/Qmap-opts

enable option mapping tool

-MD

/MD, /MDd

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

-MF<file>

/QMF<file>

generate makefile dependency information in file (must specify -M or -MM)

-MG

/QMG

similar to -M, but treat missing header files as generated files

-MM

/QMM

similar to -M, but do not include system header files

-MMD

/QMMD

similar to -MD, but do not include system header files

-mp1

/Qprec

improve floating-point precision (speed impact is less than -mp)

-MT<target>

/QMT<target>

change the default target rule for dependency generation

-nobss-init

/Qnobss-init

disable placement of zero-initialized variables in BSS (use DATA)

-nostdinc

/X

same as -X

-O

/O2

same as -O2

-o<file>

/Fe<file>

specify name of output file

-O0

/Od

disable optimizations

-O1

/O1

optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit.

-O2

/O2

enable optimizations (default)

-O3

/O3

enable -O2 plus more aggressive optimizations that may not improve performance for all programs

-openmp

/Qopenmp

enable the compiler to generate multi-threaded code based on the OpenMP* directives

-openmp-lib type
(Linux only)

/Qopenmp-lib:type

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

-openmp-profile
(Linux only)

/Qopenmp-profile

link with instrumented OpenMP runtime library to generate OpenMP profiling information

-openmp-report<n>

/Qopenmp-report<n>

control the OpenMP parallelizer diagnostic level

-openmp-stubs

/Qopenmp-stubs

enables the user to compile OpenMP programs in sequential mode

-opt-mem-bandwidth<n>
(Linux only)

/Qopt-mem-bandwidth<n>

enables performance tuning and heuristics to control memory bandwidth use among processors

-opt-report <n>

/Qopt-report:n

generate an optimization report to stderr

-opt-report-file<file>

/Qopt-report-file<file>

specify the filename for the generated report

-opt-report-help

/Qopt-report-help

display the optimization phases available for reporting

-opt-report-phase<phase>

/Qopt-report-phase<phase>

specify the phase that reports are generated against

-opt-report-routine<string>

/Qopt-report-routine<string>

reports on routines containing the given name

-opt-streaming-stores keyword
(i32, i64em)

/Qopt-streaming-stores:keyword
(i32, i64em)

enables generation of streaming stores for optimization.

-Os

/Os

enable speed optimizations, but disable some optimizations which increase code size for small speed benefit

-P, -F

/P

preprocess to file omitting #line directives

-parallel

/Qparallel

enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel

-par-report[n]

/Qpar-report[n]

control the auto-parallelizer diagnostic level

-par-schedule-keyword[=n]

/Qpar-schedule-keyword[[:]n]

specifies a scheduling algorithm for DO loop iterations.

-par-threshold[n]

/Qpar-threshold[n]

set threshold for the auto-parallelization of loops where n is an integer from 0 to 100

-pcn

/Qpcn

sets floating-point significatn precisions: 32 (24-bit), 64 (53-bit), and 80 (64-bit).

-pch

/YX

enable automatic precompiled header file creation/usage

-prof-dir <dir>

/Qprof-dir <dir>

specify directory for profiling output files (*.dyn and *.dpi)

-prof-file <file>

/Qprof-file <file>

specify file name for profiling summary file

-prof-gen[x]

/Qprof-gen[x]

instrument program for profiling

-prof-gen-sampling

/Qprof-gen-sampling

prepare code for use with profrun sample gathering tool

-prof-use

/Qprof-use

enable use of profiling information during optimization

-Qlocation,<string>,<dir>

/Qlocation,<string>,<dir>

set <dir> as the location of tool specified by <strring>; supported tools depend on the operating system

-Qoption,<string>,<options>

/Qoption,<string>,<options>

pass options <options> to tool specified by <string>; supported tools depend on the operating system

-rcd

/Qrcd

rounding mode to enable fast float-to-int conversions

-S

/S

compile to assembly (.s) only, do not link (*I)

-ssp
(Linux only)

/Qssp

enable software-based speculative pre-computation

-strict-ansi

/Za

strict ANSI conformance dialect

-tcheck
(Linux only)

/Qtcheck

generate instrumentation to detect multi-threading bugs

-tcollect[=lib]
(Linux only)

/Qtcollect[=lib]

inserts instrumentation probes calling the Intel® Trace Collector API

-tprofile
(Linux only)

/Qtprofile

generates instrumentation to analyze multi-threading performance

-U<name>

/U<name>

remove predefined macro

-unroll[n]

/Qunroll[:n]

set maximum number of times to unroll loops. Specify 0 to disable unrolling.

-use-asm

/Quse-asm[-]
(i64)

produce objects through assembler

-pch-use <file | dir>

/Yu[file]

use precompiled header file

-V

/QV

display compiler version information

-vec-report[n]
(i32, i64em)

/Qvec-report[n]
(i32, i64em)

control amount of vectorizer diagnostic information-opt-report generate an optimization report to stderr

-Wall

/Wall

enable all warnings

-Wbrief

/WL

print brief one-line diagnostics

-Wcheck

/Wcheck

enable compile-time code checking for certain code

-Wcontext-limit=<n>

/Qcontext-limit=<n>

set maximum number of template instantiation contexts shown in diagnostic

-wd<L1>[,<Ln>,...]

/Qwd<L1>[,<Ln>,...]

disable diagnostics L1 through Ln

-we<L1>[,<Ln>,...]

/Qwe<L1>[,<Ln>,...]

change severity of soft diagnostics L1 through Ln to error

-Weffc++

/Qeffc++

enables warnings based on certain C++ programming guidelines

-Werror

/WX

force warnings to be reported as errors

-wn<n>

/Qwn<n>

print a maximum number of errors

-Wp64

/Wp64

print diagnostics for 64-bit porting

-wr<L1>[,<Ln>,...]

/Qwr<L1>[,<Ln>,...]

change severity of soft diagnostics L1 through Ln to remark

-ww<L1>[,<Ln>,...]

/Qww<L1>[,<Ln>,...]

change soft diagnostics L1 through Ln to warning

-x<processor>
(i32, i64em)

/Qx<processor>
(i32, i64em)

generate specialized code to run exclusively on processors indicated by <processor>

-X

/X

remove standard directories from include file search path