Intel(R) C Compiler Help ======================== usage: icc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the icc.cfg file. Compiler Option List -------------------- Performance ----------- -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. -O2 enable optimizations (DEFAULT) -O3 enable -O2 plus more aggressive optimizations that may not improve performance for all programs -O0 disable optimizations -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -fast enable -xP -O3 -ipo -no-prec-div -static -Ob control inline expansion: n=0 disables inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion (same as -ip) -falias assume aliasing in program (DEFAULT) -fno-alias assume no aliasing in program -ffnalias assume aliasing within functions (DEFAULT) -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function, at the compiler's discretion (same as -ip) -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fno-builtin disable inline expansion of intrinsic functions -mp maintain floating point precision (disables some optimizations) -mp1 improve floating-point precision (speed impact is less than -mp) -m[no-]ieee-fp same as -mp -ffunction-sections separate functions for the linker (COMDAT) -f[no-]exceptions enable(DEFAULT)/disable exception handling -fdata-sections same as -ffunction-sections -fp disable using EBP as general purpose register -f[no-]omit-frame-pointer negative version same as -fp -[no-]prec-div improve precision of floating-point divides (some speed impact) -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]fp-port round fp results at assignments & casts (some speed impact) -fpstkchk enable fp stack checking after every function/procedure call -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -rcd rounding mode to enable fast float-to-int conversions -mcpu= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -mtune= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code excusively for a given pentiumpro - Pentium(R) Pro and Pentium(R) II processor instructions pentiumii - MMX(TM)instructions pentiumiii - streaming SIMD extensions pentium4 - Pentium(R) 4 New Instructions -msse3 generate code for Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support -ax generate code specialized for processors specified by while also generating generic IA-32 code. includes one or more of the following characters: W Intel Pentium 4 and compatible Intel processors P Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support -x generate specialized code to run exclusively on processors indicated by as described above. Advanced Performance -------------------- Enable and specify the scope of Interprocedural (IP) Optimizations: -ip enable single-file IP optimizations (within files) -ipo[n] enable multi-file IP optimizations (between files) -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.s) Modify the behavior of IP: -ip-no-inlining disable full and partial inlining (requires -ip or -ipo) -ip-no-pinlining disable partial inlining (requires -ip or -ipo) -ipo-separate create one object file for every source file (overrides -ipo[n]) Other Advanced Performance Options: -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable loop unroller. -unroll [n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable loop unroller. -funroll-loops unroll loops based on default heuristics -nolib-inline disable inline expansion of intrinsic functions -heap-arrays [n] Temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack -no-heap-arrays (DEFAULT) Temporary arrays are allocated on the stack -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-file specify file name for profiling summary file -prof-gen[x] instrument program for profiling; with the x qualifier, extra information is gathered -prof-use enable use of profiling information during optimization -prof-gen-sampling prepare code for use with profrun sample gathering tool -[no-]func-groups enable/disable function grouping -qp compile and link for function profiling with UNIX gprof tool -p same as -qp -vec-report[n] control amount of vectorizer diagnostic information: n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information -opt-report generate an optimization report to stderr -opt-report-file specify the filename for the generated report -opt-report-level[level] specify the level of report verbosity (min|med|max) -opt-report-phase specify the phase that reports are generated against -opt-report-routine reports on routines containing the given name -opt-report-help display the optimization phases available for reporting -tcheck generate instrumentation to detect multi-threading bugs (requires Intel(R) Thread Checker; cannot be used with compiler alone) -tprofile generate instrumentation to analyze multi-threading performance (requires Intel(R) Thread Profiler; cannot be used with compiler alone) -openmp enable the compiler to generate multi-threaded code based on the OpenMP directives -openmp-profile link with instrumented OpenMP runtime library to generate OpenMP profiling information for use with the OpenMP component of the VTune(TM) Performance Analyzer -openmp-stubs enables the user to compile OpenMP programs in sequential mode. The openmp directives are ignored and a stub OpenMP library is linked (sequential) -openmp-report{0|1|2} control the OpenMP parallelizer diagnostic level -cluster-openmp allows the user to run an OpenMP program on a cluster. See Cluster OMP documentation -cluster-openmp-profile link a Cluster OMP program with profiling information. See Cluster OMP documentation -[no-]clomp-sharable-propagation reports variables that need to be made sharable by the user with Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-info reports variables that the compiler automatically makes sharable for Cluster OMP. See Cluster OMP documentation -parallel enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel -par-report{0|1|2|3} control the auto-parallelizer diagnostic level -par-threshold[n] set threshold for the auto-parallelization of loops where n is an integer from 0 to 100 -[no-]alias-args enable(DEFAULT)/disable C/C++ rule that function arguments may be aliased; when disabling the rule, the user asserts that this is safe -fargument-alias same as -alias-args -fargument-noalias same as -alias-args- -fargument-noalias-global arguments do not alias each other and do not alias global storage -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules in optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set inlining upper limits -inline-forceinline treat inline routines as forceinline Output, Debug, PCH ------------- -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link (*I) -[no-]use-asm produce objects through assembler -use-msasm Support Microsoft style assembly language insertion using MASM style syntax -fcode-asm produce assembly file with optional code annotations (requires -S) -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -g0 disable generation of symbolic debug information -debug [keyword] enable debug information and control output of enhanced debug information. keywords: all, full, minimal, none, inline-debug-info, variable-locations, semantic-stepping, extended, [no]expr-source-pos -inline-debug-info preserve the source position of inlined code instead of assigning the call-site source position to inlined code -ftrapuv trap uninitialized variables -pch enable automatic precompiled header file creation/usage -create-pch create precompiled header file -use-pch use precompiled header file -pch-dir name precompiled header directory -map-opts enable option mapping tool -print-multi-lib print information about libraries being used C Preprocessor -------------- -A[(val)] create an assertion 'name' having value 'val' -A- remove all predefined macros -C don't strip comments -D[=] define macro -E preprocess to stdout -EP preprocess to stdout omitting #line directives -P preprocess to file omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put 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 -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -U remove predefined macro -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -X remove standard directories from include file search path -nostdinc same as -X -H print include file order -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD Same as -dM, but output #define directives in preprocessed source -dN Same as -dD, but #define directives contain only macro names -no-gcc do not predefine the __GNUC__, __GNUC_MINOR__, and __GNUC_PATCHLEVEL__ macros Component Control ----------------- -Qoption,, pass options to tool specified by -Qlocation,, set as the location of tool specified by -Qinstall set as root of compiler installation Language -------- -[no]restrict enable/disable the 'restrict' keyword for disambiguating pointers -export enable the export template feature -export-dir add directory to export template search path -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -[no-]c99 enable/disable(DEFAULT) C99 support for C programs -std=c99 enable C99 support for C programs -Kc++ compile all source or unrecognized file types as C++ source files -fno-rtti disable RTTI support -[no]align analyze and reorder memory layout for variables and arrays -malign-double same as -align -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16) -fshort-enums allocate as many bytes as needed for enumerated types -fsyntax-only perform syntax and semantic checking only (no object file produced) -funsigned-char change default char type to unsigned -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth- control the depth in which recursive templates are expanded -fno-operator-names disable support for operator name keywords -fno-gnu-keywords do not recognize 'typeof' as a keyword -fpermissive allow for non-conformant code -f[no-]non-lvalue-assign allow (DEFAULT) or disallow casts and conditional expressions to be used as lvalues -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics: n=0 display errors (same as -w) n=1 display warnings and errors (DEFAULT) n=2 display remarks, warnings, and errors -wn print a maximum of n errors -wd[,,...] disable diagnostics L1 through LN -we[,,...] change severity of diagnostics L1 through LN to error -ww[,,...] change severity of diagnostics L1 through LN to warning -wr[,,...] change severity of diagnostics L1 through LN to remark -Werror force warnings to be reported as errors -Wall enable all warnings -Wbrief print brief one-line diagnostics -Wcheck enable more strict diagnostics -W[no-]missing-prototypes warn for missing prototypes -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant (DEFAULT) -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -W[no-]unused-function warn if declared function is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when /* appears in the middle of a /* */ comment -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]shadow warn when a variable declaration hides a previous declaration -Wp64 print diagnostics for 64-bit porting -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) Miscellaneous ------------- -help print this help message -V display compiler version information --version display GCC style version information -dumpversion display the compiler version number only -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -x all source files found subsequent to -x will be recognized as one of the following types: c - C source file c++ - C++ source file c-header - C header file cpp-output - C pre-processed file c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - disable recognition, and revert to file extension -save-temps Store the intermediate files in current directory and name them based on the source file. -[no-]sox enable/disable(DEFAULT) saving of compiler options and version in the executable -f[no-]pic, -f[no-]PIC required to build fully preemptable and position independent code for shared objects (OFF by default) -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden do not mark inline member functions as hidden -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -f[no-]common Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables -fpack-struct pack structure members together -freg-struct-return return struct and union values in registers when possible -fno-builtin- disable the intrinsic -f[no-]math-errno set ERRNO after calling standard math library functions -fstack-security-check enable overflow security checks -long_double enable 80-bit 'long double' -nobss-init disable placement of zero-initialized variables in BSS (use DATA) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -gcc-name= name and location of gcc if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed 320 - gcc 3.2 compatibility 330 - gcc 3.3 compatibility 340 - gcc 3.4 compatibility 400 - gcc 4.0 compatibility -B find libraries, headers and executables in -[no-]multibyte-chars provide support for multi-byte characters -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation Linking/Linker -------------- -L instruct linker to search for libraries -i-dynamic link Intel provided libraries dynamically -i-static link Intel provided libraries statically -dynamic-linker select dynamic linker other than the default -no-cpprt do not link in C++ runtime libraries -nodefaultlibs do not use standard libraries when linking -nostartfiles do not use standard startup files when linking -nostdlib do not use standard libraries and startup files when linking -static prevents linking with shared libraries -shared produce a shared object -pthread use pthreads library for multithreading support -static-libcxa link Intel libcxa C++ library statically -shared-libcxa link Intel libcxa C++ library dynamically, overrides the default behavior when -static is used -cxxlib- tell the compiler which C++ run-time libraries to use gcc[=dir] - link using C++ run-time libraries provided with gcc (default on systems running gcc 3.2 or above) dir is an optional top-level location for the gcc binaries and libraries nostd - do not link in the standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor Copyright (C) 1985-2006, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners. ==================================================================================== Intel(R) Fortran Compiler Help ============================== usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort.cfg file. Compiler Option List -------------------- Performance ----------- -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. -O2 enable optimizations (DEFAULT) -O3 enable -O2 plus more aggressive optimizations that may not improve performance for all programs -O0 disable optimizations -O same as -O2 -fast enable -xP -O3 -ipo -no-prec-div -static -Ob control inline expansion: n=0 disable inlining n=1 no inlining (unless -ip specified) n=2 inline any function, at the compiler's discretion (same as -ip) -falias assume aliasing in program (DEFAULT) -fno-alias assume no aliasing in program -ffnalias assume aliasing within functions (DEFAULT) -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]inline-functions inline any function, at the compiler's discretion (same as -ip) -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fp disable using EBP as general purpose register -f[no-]omit-frame-pointer negative version same as -fp -mp maintain floating point precision (disables some optimizations) -mp1 improve floating-point precision (speed impact is less than -mp) -m[no-]ieee-fp same as -mp -[no]fltconsistency specify that improved floating-point consistency should be used -fpe{0|1|3} specifies behavior on floating point exceptions -[no-]prec-div improve precision of floating-point divides (some speed impact) -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]fp-port round fp results at assignments & casts (some speed impact) -fpstkchk enable fp stack checking after every function/procedure call -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -mcpu= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -mtune= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code excusively for a given pentiumpro - Pentium(R) Pro and Pentium(R) II processor instructions pentiumii - MMX(TM)instructions pentiumiii - streaming SIMD extensions pentium4 - Pentium(R) 4 New Instructions -ax generate code specialized for processors specified by while also generating generic IA-32 code. includes one or more of the following characters: W Intel Pentium 4 and compatible Intel processors P Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support -x generate specialized code to run exclusively on processors indicated by as described above. -tune pn1 - optimize for Pentium(R) processor pn2 - optimize for Pentium(R) Pro, Pentium(R) II, and Pentium(R) III processors pn3 - same as pn2 pn4 - optimize for Pentium(R) 4 processor (DEFAULT) -arch pn1 - optimize for Pentium(R) processor pn2 - optimize for Pentium(R) Pro, Pentium(R) II, and Pentium(R) III processors pn3 - same as pn2 pn4 - optimize for Pentium(R) 4 processor (DEFAULT) -msse3 generate code for Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support Advanced Performance -------------------- Enable and specify the scope of Interprocedural (IP) Optimizations: -ip enable single-file IP optimizations (within files) -ipo[n] enable multi-file IP optimizations (between files) -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.s) Modify the behavior of IP: -ip-no-inlining disable full and partial inlining (requires -ip or -ipo) -ip-no-pinlining disable partial inlining (requires -ip or -ipo) -ipo-separate create one object file for every source file (overrides -ipo[n]) Other Advanced Performance Options: -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -nolib-inline disable inline expansion of intrinsic functions -pad enable changing variable and array memory layout -nopad disable(DEFAULT) changing variable and array memory layout -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable loop unroller. -funroll-loops unroll loops based on default heuristics -safe-cray-ptr Cray pointers do not alias with other variables -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-file specify file name for profiling summary file -prof-gen[x] instrument program for profiling; with the x qualifier, extra information is gathered -prof-use enable use of profiling information during optimization -prof-gen-sampling prepare code for use with profrun sample gathering tool -[no-]func-groups enable/disable function grouping -qp compile and link for function profiling with UNIX gprof tool -p same as -qp -vec-report[n] control amount of vectorizer diagnostic information: n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information -opt-report generate an optimization report to stderr -opt-report-file specify the filename for the generated report -opt-report-level[level] specify the level of report verbosity (min|med|max) -opt-report-phase specify the phase that reports are generated against -opt-report-routine reports on routines containing the given name -opt-report-help display the optimization phases available for reporting -tcheck generate instrumentation to detect multi-threading bugs (requires Intel(R) Thread Checker; cannot be used with compiler alone) -tprofile generate instrumentation to analyze multi-threading performance (requires Intel(R) Thread Profiler; cannot be used with compiler alone) -openmp enable the compiler to generate multi-threaded code based on the OpenMP directives -openmp-profile link with instrumented OpenMP runtime library to generate OpenMP profiling information for use with the OpenMP component of the VTune(TM) Performance Analyzer -openmp-stubs enables the user to compile OpenMP programs in sequential mode. The openmp directives are ignored and a stub OpenMP library is linked (sequential) -openmp-report{0|1|2} control the OpenMP parallelizer diagnostic level -cluster-openmp allows the user to run an OpenMP program on a cluster. See Cluster OMP documentation -cluster-openmp-profile link a Cluster OMP program with profiling information. See Cluster OMP documentation -[no-]clomp-sharable-propagation reports variables that need to be made sharable by the user with Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-info reports variables that the compiler automatically makes sharable for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-commons makes all COMMONs sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-modvars makes all variables in modules sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-localsaves makes all SAVE variables sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-argexprs makes all expressions in function and subroutine call statements sharable by default for Cluster OMP. See Cluster OMP documentation -parallel enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel -par-report{0|1|2|3} control the auto-parallelizer diagnostic level -par-threshold[n] set threshold for the auto-parallelization of loops where n is an integer from 0 to 100 -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable(DEFAULT)/disable use of ANSI aliasing rules in optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]ftz enable/disable flush denormal results to zero -[no]recursive compile all procedures for possible recursive execution -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions, enables property to allow for modification of the floating point environment -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set inlining upper limits -inline-forceinline treat inline routines as forceinline Output, Debug ------------- -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -[no-]use-asm produce objects through assembler -use-msasm Support Microsoft style assembly language insertion using MASM style syntax -fcode-asm produce assembly file with optional code annotations (requires -S) -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information. keywords: all, full, minimal, none, inline-debug-info, variable-locations, semantic-stepping, extended -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -inline-debug-info preserve the source position of inlined code instead of assigning the call-site source position to inlined code -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Fortran Preprocessor -------------------- -D[=] define macro -noD,-nodefines specifies that any /D macros go to the preprocessor only, and not to the compiler too -allow nofpp_comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow fpp_comments -E preprocess to stdout -EP preprocess to stdout omitting #line directives -P, -preprocess-only preprocess to file omitting #line directives -fpp[n] run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to no fpp n=1,2,3 run preprocessor -cpp[n] same as -fpp[n] -module [path] specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -U remove predefined macro -X, -nostdinc remove standard directories from include file search path Language -------- -i2 set default KIND of integer variables to 2 -i4 set default KIND of integer variables to 4 -i8 set default KIND of integer variables to 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r8 set default size of REAL to 8 bytes -r16 set default size of REAL to 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Compaq Fortran 77 semantics, rather than Compaq Fortran 90, to determine kind of integer constants -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -[no]d-lines compile debug statements (indicated by D in column 1) -[no]fixed,-FI specifies source files are in fixed format -[no]free, -FR specifies source files are in free format -72 specify 72 column lines for fixed form sources -80 specify 80 column lines for fixed form sources -132 specify 132 column lines for fixed form sources -extend-source same as -132 -extend-source [size] Determines the column that ends the statement field of each source line in a fixed-format file. -extend-source default size is 132 size: 72, 80, 132 -noextend-source source lines are expected to be 72 characters -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list, or none -stand specifies level of conformance with ANSI standard to check for keywords: f90, f95, none -[no]pad-source make compiler acknowledge blanks at the end of a line -[no]dps, -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -1, -onetrip execute any DO loop at least once -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -[no]f77rtl specify that the Fortran 77 specific run-time support should be used -auto make all local variables AUTOMATIC. Same as -automatic -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noautomatic, opposite of -auto) -u, -implicitnone set IMPLICIT NONE by default -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_args -[no]mixed-str-len-arg indicates whether hidden lengths are passed after their character argument or after all arguments. -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]dummy_aliases, [no]minus0, [no]protect_constants, [no]source_include, [no]underscore, [no]2underscore, [no]writeable_strings -vms enable VMS and DEC statement extensions -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are not saved or initialized -CB runtime checks for out-of-bounds array subscript/substring refs Same as -check bounds -check check run-time conditions keywords: all, none (same as -nocheck), [no]arg_temp_created, [no]bounds,[no]format, [no]output_conversion, [no]power, [no]uninit, [no]args -nocheck perform no extra run-time checks -Qdyncom"blk1,blk2,..." make given common blocks dynamically-allocated -nbs treat backslash as a normal character, not an escape character -us append an underscore to external subroutine names -nus do not append an underscore to external subroutine names -lowercase change routine names to all lowercase (DEFAULT) (same as -names lowercase) -uppercase change routine names to all uppercase (same as -names uppercase) -names specify how source code identifiers and external names are interpreted keywords: as_is, lowercase, uppercase -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16) (same as -align recNbyte) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keyword: all (same as /align), none (same as /noalign), [no]commons, [no]dcommons, [no]records, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, [no]sequence -syntax-only perform syntax check only Compiler Diagnostics -------------------- -cm suppress all comment messages -q suppress printing errors to stderr -w disable all warnings -Wn disable warnings (n=0) or show warnings (n=1, DEFAULT, same as -warn general) -w90, -w95 suppress messages about use of non-standard Fortran -warn specifies the level of warning messages issued. keywords: all, none (same as -nowarn), [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]gen-interfaces generate interface blocks for all routines in the file. Can be checked using -warn interfaces -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexidecimal traceback at runtime failure -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages Miscellaneous ------------- -help print this help message -V display compiler version information --version display GCC style version information -[no]logo [do not] display compiler version information -save-temps Store the intermediate files in current directory and name them based on the source file. -[no-]sox enable/disable(DEFAULT) saving of compiler options and version in the executable -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch tells the driver to output processing information. keywords: all, none (same as -nowatch), [no]cmd (same as -v), [no]source -nowatch suppress processing information output. (Default) -Tf compile file as Fortran source -nobss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]pic, -f[no-]PIC generate position independent code (OFF by default) -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, -fpscomp [keyword] specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran Powerstation -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -Qoption,, pass options to tool specified by -Qlocation,, set as the location of tool specified by -Qinstall set as root of compiler installation -B find libraries, headers and executables in Linking/Linker -------------- -L instruct linker to search for libraries -i-dynamic link Intel provided libraries dynamically -i-static link Intel provided libraries statically -dynamic-linker select dynamic linker other than the default -nodefaultlibs do not use standard libraries when linking -nofor-main do not link against Fortran main object Used when linking Fortran objects with C main program -nostartfiles do not use standard startup files when linking -nostdlib do not use standard libraries and startup files when linking -static prevents linking with shared libraries -shared produce a shared object -static-libcxa link Intel libcxa C++ library statically -shared-libcxa link Intel libcxa C++ library dynamically, overrides the default -[no-]cxxlib specify whether or not C++ runtime libraries should be linked against. Default is off. -cxxlib- tell the compiler which C++ run-time libraries to use gcc[=dir] - link using C++ run-time libraries provided with gcc (default on systems running gcc 3.2 or above) dir is an optional top-level location for the gcc binaries and libraries -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -[no]threads specify whether or not multi-threaded libraries should be linked against Copyright (C) 1985-2006, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners. ========================================================================================== Additional descriptions from the compiler Release Notes: -xT Directs the compiler to generate specialized and optimized processor-specific code for the Intel(R) Core(TM) 2 processor family and the Dual-Core Intel(R) Xeon(R) 5100-series processors. (IA-32 and Intel® 64-only, default: off) KMP_AFFINITY Environment Variable for OpenMP* Applications The KMP_AFFINITY environment variable can be used in an OpenMP* application to specify how execution threads should be bound to processors on the system. This setting's effect is to bind each thread, in order of creation, in a round-robin fashion to a processor core in the system for the duration of the program. The value of KMP_AFFINITY should be of the form: compact, where is a non-negative integer. For example: compact,1 The argument specifies the gap between successive thread's bound cores in the machine topology map, which is represented as a binary tree. A level of zero indicates that threads will be bound to successive threading contexts for processors which have Intel® Hyper-Threading™ Technology enabled, or successive processors if not. The levels increase by one level from threading contexts, to cores, to packages (processors) in sequence. This setting is supported for processors supplied by Intel Corporation only on systems where the required operating system support for thread binding is present. Copyright (C) 1985-2006, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners. ========================================================================================== Additional descriptions from the compiler Users' Guide: OpenMP* Environment Variables KMP_STACKSIZE Sets the number of bytes to allocate for each parallel thread to use as its private stack. Use the optional suffix b, k, m, g, ot t, to specify bytes, kilobytes, megabytes, gigabytes, or terabytes. KMP_LIBRARY Selects the OpenMP run-time library execution mode. The options for the variable value are throughput or turnaround. Copyright (C) 1985-2006, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners. ========================================================================================== Additional descriptions from the submitter: -ansi_alias: Alternate spelling for -ansi-alias. (Preferred spelling is -ansi-alias.) BIOS settings: Advanced->Memory Configuration->Memory RAS and Performance Config->FSB High Bandwidth Optimization=Enabled Advanced->Memory Configuration->Memory RAS and Performance Config->Snoop Filter=Enabled