Cross References of Compiler Options

This section provides a cross-reference table of compiler options used on Windows* and Linux* 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.

See Also

The Intel® C++ Compiler includes the Intel® Compiler Option Mapping tool. It provides a way to compare ("map") options between Windows and Linux and vice versa.

Linux Cross Reference

The following cross-reference table is based on the alphabetical order of Linux compiler options, which appear in the first column.

Linux Option Windows Equivalent Description
-[no-]alias-args /Qalias-args[-] enable(DEFAULT)/disable C/C++ rule that function arguments may be aliased
-[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-]fnsplit /Qfnsplit[-] enable/disable function splitting (enabled with -prof-use)
-[no-]ftz /Qftz[-] enable/disable flush denormal results to zero
-[no-]global-hoist /Qglobal-hoist[-] enable(DEFAULT)/disable external globals are load safe
-[no-]IPF-fltacc /QIPF-fltacc[-] enable/disable optimizations that affect floating point accuracy
-[no-]IPF-fma /QIPF-fma[-] enable/disable the combining of floating point multiplies and add/subtract operations
-[no-]IPF-fp-relaxed /QIPF-fp-relaxed[-] 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-]prec-div /Qprec-div[-] improve precision of floating-point divides (some speed impact)
-[no-]prec-sqrt /Qprec-sqrt[-] determine if certain square root optimizations are enabled
-[no-]prefetch /Qprefetch[-] enable(DEFAULT)/disable prefetch insertion
-[no]restrict /Qrestrict[-] enable/disable the 'restrict' keyword for disambiguating pointers
-[no-]sox /Qsox[-] enable/disable(DEFAULT) saving of compiler options and version in the executable
-[no]traceback /traceback specify whether the compiler generates data to allow for source file traceback information at runtime
-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 /Qauto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required)
-ax<codes> /Qax<codes> generate code specialized for processors specified by <codes> while also generating generic IA-32 code
-C /C don't strip comments
-c /c compile to object (.o) only, do not link
-create-pch <file> /Yc[hfile] create precompiled header file
-D<name>[=<text>] /D<name>[{=|#}<text>] define macro
-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
-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 enable -xP -O3 -ipo -no-prec-div -static
-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 /Oy- disable using EBP as general purpose register
-fp-port /Qfp-port round fp results at assignments & casts (some speed impact)
-fpstkchk /Qfpstkchk enable fp stack checking after every function/procedure call
-fsource-asm /FAs produce assembly file with optional source annotations
-fstack-security-check /GS enable overflow security checks
-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
-H /QH print include file order
-help /help print this help message
-I<dir> /I<dir> add directory to include file search path
-inline-debug-info /Qinline-debug-info preserve the source position of inlined code instead of assigning the call-site source position to inlined code
-ip /Qip enable single-file IP optimizations (within files)
-IPF-flt-eval-method0 /QIPF-flt-eval-method0 floating point operands evaluated to the precision indicated by program
-IPF-fp-speculation<mode> /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 /Qip-no-pinlining 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-S /Qipo-S generate a multi-file assembly file (ipo_out.s)
-ipo-separate /Qipo-separate create one object file for every source file
-ivdep-parallel /Qivdep-parallel make ivdep directives mean no loop carried dependencies
-Kc++ /TP compile all source or unrecognized file types as C++ source files
-long_double /Qlong-double enable 80-bit 'long double'
-M /QM generate makefile dependency information
-map-opts /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
-mp /Op[-] maintain floating point precision (disables some optimizations)
-mp1 /Qprec improve floating-point precision (speed impact is less than -mp)
-MQ<target> /QMQ<target> same as -MT, but quotes special Make characters
-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> name 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
-Ob<n> /Ob<n> control inline expansion
-openmp /Qopenmp enable the compiler to generate multi-threaded code based on the OpenMP directives
-openmp-profile /Qopenmp-profile link with instrumented OpenMP runtime library to generate OpenMP profiling information
-openmp-report{0|1|2} /Qopenmp-report{0|1|2} control the OpenMP parallelizer diagnostic level
-openmp-stubs /Qopenmp-stubs enables the user to compile OpenMP programs in sequential mode
-opt-report /Qopt-report 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-level[level] /Qopt-report-level[level] specify the level of report verbosity (min|med|max)
-opt-report-phase<name> /Qopt-report-phase<name> specify the phase that reports are generated against
-opt-report-routine<name> /Qopt-report-routine<name> reports on routines containing the given name
-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{0|1|2|3} /Qpar-report{0|1|2|3} control the auto-parallelizer diagnostic level
-par-threshold[n] /Qpar-threshold[n] set threshold for the auto-parallelization of loops where n is an integer from 0 to 100
-pc32 /Qpc32 set internal FPU precision to 24 bit significand
-pc64 /Qpc64 set internal FPU precision to 53 bit significand
-pc80 /Qpc80 set internal FPU precision to 64 bit significand (DEFAULT)
-pch /YX enable automatic precompiled header file creation/usage
-prof-dir <d> /Qprof-dir <d> specify directory for profiling output files (*.dyn and *.dpi)
-prof-file <f> /Qprof-file <f> 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,<str>,<dir> /Qlocation,<str>,<dir> set <dir> as the location of tool specified by <str>
-Qoption,<str>,<opts> /Qoption,<str>,<opts> pass options <opts> to tool specified by <str>
-rcd /Qrcd rounding mode to enable fast float-to-int conversions
-S /S compile to assembly (.s) only, do not link (*I)
-ssp /Qssp enable software-based speculative pre-computation
-strict-ansi /Za strict ANSI conformance dialect
-tcheck /Qtcheck generate instrumentation to detect multi-threading bugs
-U<name> /U<name> remove predefined macro
-unroll [n] /Qunroll[n] set maximum number of times to unroll loops
-unroll 0 /Qunroll0 disable loop unrolling
-unroll[n] /Qunroll[n] set maximum number of times to unroll loops
-unroll0 /Qunroll0 disable loop unrolling
-use-asm /Quse-asm[-] produce objects through assembler
-use-pch <file> /Yu[hfile] use precompiled header file
-V /QV display compiler version information
-vec-report[n] /Qvec-report[n] control amount of vectorizer diagnostic information-opt-report generate an optimization report to stderr
-w /w disable all warnings
-Wall /Wall enable all warnings
-Wbrief /WL print brief one-line diagnostics
-Wcheck /Wcheck enable more strict diagnostics
-Wcontext-limit=<n> /Qcontext-limit<n> set maximum number of template instantiation contexts shown in diagnostic
-wd<L1>[,<L2>,...] /Qwd<L1>[,<L2>,...] disable diagnostics L1 through LN
-we<L1>[,<L2>,...] /Qwe<L1>[,<L2>,...] change severity of diagnostics L1 through LN to error
-Werror /WX force warnings to be reported as errors
-wn<n> /Qwn<n> print a maximum of n errors
-Wp64 /Wp64 print diagnostics for 64-bit porting
-wr<L1>[,<L2>,...] /Qwr<L1>[,<L2>,...] change severity of diagnostics L1 through LN to remark
-ww<L1>[,<L2>,...] /Qww<L1>[,<L2>,...] change severity of diagnostics L1 through LN to warning
-X /X remove standard directories from include file search path
-x<codes> /Qx<codes> generate specialized code to run exclusively on processors indicated by <codes> as described above
-Zp[n] /Zp[n] specify alignment constraint for structures (n=1,2,4,8,16)

 

See Also

map-opts, Qmap-opts