Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." 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 -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions IA32 generate x86/x87 generic code that is compatible with IA-32 architecture. Disables any default extended instruction settings and any previously set extended instruction settings. SSE same as /arch:IA32 -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given pentium3 - streaming SIMD extensions pentium4 - Pentium(R) 4 New Instructions -mia32 generates code which will run on any Intel Pentium or later processor. Disables any default extended instruction settings, and any previously set extended instruction settings. -msse deprecated. Use -mia32 instead. -msse2 May generate Intel(R) SSE2 and SSE instructions -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -opt-args-in-regs= Determines whether calls to routines are optimized by passing arguments in registers instead of on the stack. keywords: none, seen(DEFAULT) -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules 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. -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 -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guided auto-parallelization to be output to a file -guide-file-append[=] causes the results of guided auto-parallelization to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) 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 [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-threadprivate choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -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 and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand (DEFAULT) -pc80 set internal FPU precision to 64 bit significand -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -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 set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -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, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended parallel -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 -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -fno-merge-debug-strings do not merge identical debug strings in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -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) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -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 to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -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 -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU) -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -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]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -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 -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc-include - perform source code analysis on include files sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from Static security analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. /nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -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 Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, [no]records, [no]sequence -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 -fcommon 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. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -falign-stack= stack alignment method to use on entry to routines maintain-16-byte - do not assume any specific alignment, but maintain alignment in case the stack is already aligned assume-16-byte - assume the stack is aligned on 16-byte boundaries (default) assume-4-byte - assume the stack is aligned on 4-byte boundaries -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 mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions Compatibility ------------- -fpscomp 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 -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -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 -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -openmp-profile No replacement -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2011, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others.