Visible to Intel only — GUID: GUID-F1391F3A-D995-4EBE-BBDA-9A07D601C2F3
Visible to Intel only — GUID: GUID-F1391F3A-D995-4EBE-BBDA-9A07D601C2F3
Alphabetical Option List
The following table lists current compiler options in alphabetical order.
Several Clang compiler options are supported for the ifx compiler, such as some of the -fprofile options. We do not document these options. For more information about Clang options, see the Clang documentation.
The Clang -fprofile options replace the functionality of the previous [Q]prof options, which are no longer supported.
Determines whether the compiler links to the library of portability routines. |
|
Tells the compiler how to align certain data items. |
|
Determines whether the compiler allows certain behaviors. |
|
Allows alternate syntax (without parentheses) for PARAMETER statements. |
|
Tells the compiler to assume certain rules of the Fortran standard regarding aliasing and array bounds. |
|
Tells the compiler which features it may target, including which instruction sets it may generate. |
|
Tells the compiler to make certain assumptions. |
|
Causes all local, non-SAVEd variables to be allocated to the runtime stack. |
|
Causes scalar variables of intrinsic types INTEGER, REAL, COMPLEX, and LOGICAL that do not have the SAVE attribute to be allocated to the runtime stack. |
|
Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for Intel® processors if there is a performance benefit. |
|
Specifies a directory that can be used to find include files, libraries, and executables. |
|
Enables dynamic linking of libraries at runtime. |
|
Enables static linking of a user's library. |
|
Binds references to all global symbols in a program to the definitions within a user's shared library. |
|
Binds references to all global function symbols in a program to the definitions within a user's shared library. |
|
Causes the compiler to generate an object only and not link. |
|
Specifies the type of carriage control used when a file is displayed at a terminal screen. |
|
Checks for certain conditions at runtime. |
|
Enables the coarray feature. |
|
Specifies the name of a Message Passing Interface (MPI) configuration file. |
|
Specifies the default number of images that can be used to run a coarray executable. |
|
Specifies the format of unformatted files containing numeric data. |
|
Determines whether the compiler links using the C++ runtime libraries provided by gcc. |
|
Defines a symbol name that can be associated with an optional value. |
|
Tells the linker to search for unresolved references in a debug runtime library. |
|
Enables or disables generation of debugging information. |
|
Enables or disables generation of debugging information. |
|
Tells the compiler to generate debug information for PARAMETERs used in a program. |
|
Enables or disables certain device libraries. |
|
Controls the display of diagnostic information during compilation. |
|
Tells the compiler to print all enabled diagnostic messages. |
|
Specifies the maximum number of errors allowed before compilation stops. |
|
Causes the results of diagnostic analysis to be output to a file. |
|
Causes the results of diagnostic analysis to be appended to a file. |
|
Compiles debug statements. |
|
Specifies that a program should be linked as a dynamic-link (DLL) library. |
|
Specifies the default KIND for DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics. |
|
Specifies that driver tool commands should be shown but not executed. |
|
Displays the target machine and operating system configuration. |
|
Specifies a dynamic linker other than the default. |
|
Enables dynamic allocation of common blocks at runtime. |
|
Causes the preprocessor to send output to stdout. |
|
Causes the preprocessor to send output to stdout, omitting #line directives. |
|
Specifies the name for a built program or dynamic-link library. |
|
Specifies the length of the statement field in a fixed-form source file. |
|
Specifies file extensions to be processed by the compiler as Fortran files. |
|
Specifies file extensions to be recognized as a file to be preprocessed by the Fortran preprocessor. |
|
Specifies file extensions to be passed directly to the linker. |
|
Specifies the stack reserve amount for the program. |
|
Tells the compiler to apply FORTRAN 66 semantics. |
|
Tells the compiler to use the runtime behavior of FORTRAN 77. |
|
Specifies that an assembly listing file should be generated. |
|
Produces an assembly listing without source or machine code annotations. |
|
Specifies whether or not a procedure call may have hidden aliases of local variables not supplied as actual arguments. |
|
Tells the compiler to align procedures on an optimal byte boundary. |
|
Maximizes speed across the entire program. |
|
Determines whether unwind information is precise at an instruction boundary or at a call boundary. |
|
Enables Intel® Control-Flow Enforcement Technology (Intel® CET) protection, which defends your program from certain attacks that exploit vulnerabilities. This option offers preliminary support for Intel® CET. |
|
Determines whether the compiler treats common symbols as global definitions. |
|
Enables exception handling table generation. |
|
Lets you specify the required accuracy (precision) for floating-point operations and library calls. |
|
Defines the maximum allowable absolute error for math library function results. |
|
Defines the relative error for math library function results, including division and square root. |
|
Ensures that the math library functions produce consistent results across different microarchitectural implementations of the same architecture. |
|
Indicates the input arguments domain on which math functions must provide correct results. |
|
Defines the maximum allowable relative error for math library function results, including division and square root. |
|
Lets you specify a level of accuracy (precision) that the compiler should use when determining which math library functions to use. |
|
Instructs the compiler to use the Short Vector Math Library (SVML) rather than the Intel® Fortran Compiler Math Library (LIBM) to implement math library functions. |
|
Tells the compiler to inline functions declared with !DIR$ ATTRIBUTES FORCEINLINE. |
|
Enables function inlining for single file compilation. |
|
Determines whether routine entry and exit points are instrumented. |
|
Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. Provides the ability to offload to a GPU when -fopenmp-targets (or /Qopenmp-targets) is also specified. |
|
Specifies source files are in fixed format. |
|
Tells the compiler to place device code later in the linked binary. This is to prevent 32-bit PC-relative relocations between surrounding Executable and Linkable Format (ELF) sections when the device code is larger than 2GB. |
|
Enables improved floating-point consistency. |
|
Enables whole program link time optimization (LTO). |
|
Determines whether the compiler generates fused multiply-add (FMA) instructions if such instructions exist on the target processor. |
|
fmaintain-32-byte-stack-align, Qmaintain-32-byte-stack-align |
Tells the compiler to realign the stack to 32-byte if stack alignment is uncertain for functions with external linkage, and retain 32-byte alignment for other functions. |
Tells the compiler that errno can be reliably tested after calls to standard math library functions. |
|
Causes the compiler to pool strings used in debugging information. |
|
Determines whether EBP is used as a general-purpose register in optimizations. |
|
Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. |
|
fopenmp-concurrent-host-device-compile, Qopenmp-concurrent-host-device-compile |
Enables parallel compilation of host and target compilation steps when performing OpenMP* offload compilations. This is an experimental feature. |
fopenmp-declare-target-scalar-defaultmap, Qopenmp-declare-target-scalar-defaultmap |
Determines which implicit data-mapping/sharing rules are applied for a scalar variable referenced in a TARGET directive. |
Tells the compiler that all ALLOCATE statements should be treated as though there were an explicit OpenMP ALLOCATE directive that preceded them. |
|
Enables parallel compilation of SPIR-V* kernels for OpenMP offload Ahead-Of-Time compilation. |
|
Enables or disables certain device libraries for an OpenMP* target. |
|
fopenmp-do-concurrent-maptype-modifier, Qopenmp-do-concurrent-maptype-modifier |
Lets you specify the data movement for variables referenced inside the DO CONCURRENT region when it is auto-offloaded. |
fopenmp-max-parallel-link-jobs, Qopenmp-max-parallel-link-jobs |
Determines the maximum number of parallel actions to be performed during device linking steps, where applicable. |
Instructs the compiler to only generate a device version of OpenMP* TARGET regions. |
|
Enables a way to overcome the problem where some OpenMP* offload SPIR-V* devices produce incorrect code when a target object is larger than 4GB. |
|
fopenmp-target-default-sub-group-size, Qopenmp-target-default-sub-group-size |
Lets you specify a default sub-group size globally for single program multiple data (SPMD) kernels that are generated for OpenMP* target constructs when offloading to SPIR64-based devices. |
Determines whether a DO CONCURRENT construct is automatically converted into an OpenMP* TARGET region. |
|
Enables the loop optimizer and auto-vectorization for OpenMP* offloading device compilation when option O2 or higher is set or specified. |
|
Enables OpenMP* SIMD loop vectorization for OpenMP offloading device compilation when option level O2 or higher is set or specified. |
|
Enables offloading to a specified GPU target if OpenMP* features have been enabled. |
|
Determines whether the compiler optimizes tail recursive calls. |
|
Tells the C/C++ compiler driver to link to the Fortran libraries. This option is primarily used by C/C++ for mixed-language programming. |
|
Tells the compiler that single-precision constants assigned to double-precision variables should be evaluated in double precision. |
|
Allows some control over floating-point exception handling for the main program at runtime. |
|
Allows some control over floating-point exception handling for each routine in a program at runtime. |
|
Determines whether the compiler generates position-independent code. |
|
Tells the compiler to generate position-independent code. The generated code can only be linked into executables. |
|
Controls the semantics of floating-point calculations. |
|
Runs the Fortran preprocessor on source files before compilation. |
|
Lets you specify an alternate preprocessor to use with Fortran. |
|
Lets a user tell the compiler that they are willing to give up backward compatibility guarantees and lets the compiler enable new backward breaking changes that will appear in the next major release. |
|
Enables the use of a pre-trained machine learning model to predict branch execution probabilities driving profile-guided optimizations. |
|
Determines whether the optimizer honors parentheses when floating-point expressions are evaluated. |
|
Controls whether certain aspects of the runtime system and semantic language features within the compiler are compatible with Intel® Fortran or Microsoft* Fortran PowerStation. |
|
Tells the compiler the mode in which to speculate on floating-point operations. |
|
Specifies source files are in free format. |
|
Enables the specified code sanitizer to detect certain issues at runtime. |
|
Enables or disables stack overflow security checks for certain (or all) routines. |
|
Determines whether the compiler generates code that detects some buffer overruns. |
|
Determines whether strict overflow is enabled for signed addition, subtraction, and multiplication wrap arounds using twos-complement representation. |
|
Enables linking Fortran object files with DPC++ SYCL-based object files. |
|
Enables elimination of DPC++ dead kernel arguments. |
|
Specifies a SYCL* device code module assembly. |
|
Enables or disables certain device libraries for a SYCL* target. |
|
Enables or disables linking of the Instrumentation and Tracing Technology (ITT) device libraries for VTune™. |
|
Tells the compiler to generate code for specified device targets. This option is only valid for linking against SYCL-based objects. |
|
Tells the compiler to perform less aggressive optimizations to reduce compilation time at the expense of generating less optimal target code. This is an experimental feature. |
|
Specifies a register allocation mode for specific hardware for use by supported target backends. |
|
Initializes stack local variables to an unusual value to aid error detection. |
|
Flushes subnormal results to zero. |
|
Tells the compiler to use a different linker instead of the default linker, which is ld on Linux and link on Windows. |
|
Ensures vectorization of an explicit simd loop. |
|
Enables peel loop vectorization. |
|
Enables remainder loop vectorization. |
|
Enables vectorization for short trip-count loops with masking. |
|
Produces an assembly listing with compiler comments, including options and version information. |
|
Specifies the default visibility for global symbols or the visibility for symbols in a file. |
|
Determines whether the compiler places in the DATA section any variables explicitly initialized with zeros. |
|
Tells the compiler to generate a level of debugging information in the object file. |
|
Lets you specify the name of the GCC compiler that should be used to set up the link-time environment, including the location of standard libraries. |
|
Lets you specify a DWARF Version format when generating debug information. |
|
Enables stack-checking for all functions. This is a deprecated option. |
|
Tells the compiler to generate build dependencies for the current compilation. |
|
Specifies the form for the output generated when option gen-dep is specified. |
|
Determines whether certain features are excluded from dependency analysis. Currently, it only applies to intrinsic modules. |
|
Tells the compiler to generate an interface block for each routine in a source file. |
|
Enables read-only string-pooling optimization. |
|
Enables certain optimizations that can move memory loads to a point earlier in the program execution than where they appear in the source. |
|
Causes the command line options that were used to invoke the compiler to be appended to the DW_AT_producer attribute in DWARF debugging information. |
|
Determines whether the compiler generates code that detects some buffer overruns. |
|
Lets you control the threshold at which the stack checking routine is called or not called. |
|
Creates a separate object file containing DWARF debug information. |
|
Enables the control flow protection mechanism. |
|
Lets you specify the name of the g++ compiler that should be used to set up the link-time environment, including the location of standard libraries. |
|
Puts automatic arrays and arrays created for temporary computations on the heap instead of the stack. |
|
Displays all supported compiler options or supported compiler options within a specified category of options. |
|
Specifies an additional directory for the include path. |
|
Adds a directory to the second include file search path. |
|
Specifies the default calling convention and argument-passing convention for an application. |
|
Lets you initialize a class of variables to zero or to various numeric exceptional values. |
|
Specifies the level of inline function expansion. |
|
Tells the compiler to treat inline routines as forceinline. |
|
Specifies the level of inline function expansion. |
|
Tells the compiler to use FORTRAN 77 semantics to determine the kind parameter for integer constants. |
|
Specifies the default KIND for integer and logical variables. |
|
Lets you compile in the absence of a gcc environment. |
|
Lets you specify the target operating system for compilation. |
|
Enables interprocedural optimization between files. |
|
Specifies a directory to add to the start of the system include path. |
|
Tells the linker to search for a specified library when linking. |
|
Tells the linker to search for libraries in a specified directory before searching the standard directories. |
|
Controls whether linker options for search libraries are included in object files generated by the compiler. |
|
Tells the compiler which type of runtime library to link to. |
|
Passes user-specified options directly to the linker at compile time. |
|
Tells the compiler to create a listing of the source file. |
|
Specifies the line length for the listing generated when option list is specified. |
|
Specifies the page length for the listing generated when option list is specified. |
|
Displays the compiler version information. |
|
Tells the compiler which features it may target, including which instruction set architecture (ISA) it may generate. |
|
Tells the compiler to generate code for a specific architecture. It is a legacy option that is deprecated, and it will be removed in a future release. |
|
Specifies whether the compiler can use x87 instructions. |
|
Tells the linker to generate a link map file. |
|
Tells the compiler to generate code for processors that support certain features. |
|
Tells the compiler to generate the assembler output file using a selected dialect. |
|
Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for x86 architecture processors if there is a performance benefit. |
|
mbranches-within-32B-boundaries, Qbranches-within-32B-boundaries |
Tells the compiler to align branches and fused branches on 32-byte boundaries for better performance. |
Tells the compiler to use a specific memory model to generate code and store data. |
|
Tells the linker to search for unresolved references in a multithreaded, dynamic-link runtime library. |
|
Disables the generation of gather instructions in auto-vectorization. |
|
Disables the generation of scatter instructions in auto-vectorization. |
|
Specifies the directory where module files should be placed when created and where they should be searched for. |
|
Determines whether the frame pointer is omitted or kept in leaf functions. |
|
Tells the linker to search for unresolved references in a multithreaded, static runtime library. |
|
Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march). |
|
Creates multiple processes that can be used to compile large numbers of source files at the same time. |
|
Specifies how source code identifiers and external names are interpreted. |
|
Prevents the compiler from using standard libraries when linking. |
|
Specifies that the main program is not written in Fortran. |
|
Disables linking to specified Intel® libraries, or to all Intel® libraries. |
|
Disables inline expansion of standard library or intrinsic functions. |
|
Disables linking of the SYCL* runtime library. |
|
Prevents the compiler from using standard startup files when linking. |
|
Prevents the compiler from using standard libraries and startup files when linking. |
|
Specifies the code optimization for applications. |
|
Specifies the name for an output file. |
|
Specifies the name for an object file. |
|
Disables all optimizations. |
|
Sets certain aggressive options to improve the speed of your application. |
|
Enables optimizations that do not increase code size; it produces smaller code size than O2. |
|
Enables all speed optimizations. |
|
Enables the changing of the variable and array memory layout. |
|
Specifies padding for fixed-form source records. |
|
Tells the compiler to attempt to generate multithreaded code for DO CONCURRENT loops. |
|
Enables control of floating-point significand precision. |
|
Determines whether the compiler generates position-independent code that will be linked into an executable. |
|
Improves precision of floating-point divides. |
|
Causes the Fortran preprocessor to send output to a file. |
|
Prints information about where system libraries should be found. |
|
Tells the compiler to use pthreads library for multithreading support. |
|
Specifies the root directory where the compiler installation was performed. |
|
Specifies the directory for supporting tools. |
|
Tells the compiler to link to certain libraries in the Intel® oneAPI Math Kernel Library ( oneMKL ). On Windows systems, you must specify this option at compile time. |
|
Tells the compiler to link to the ILP64-specific version of the Intel® oneAPI Math Kernel Library ( oneMKL). On Windows systems, you must specify this option at compile time. |
|
Lets you link to one or more specific Intel® oneAPI Math Kernel Library (oneMKL) SYCL libraries. |
|
You can substitute the option named -qopenmp for option -fopenmp or -fiopenmp, and you can substitute the option named /Qopenmp for option /Qiopenmp. |
|
Controls whether the compiler links to static or dynamic OpenMP* runtime libraries. |
|
Enables or disables OpenMP* SIMD compilation. |
|
Enables compilation of OpenMP* programs in sequential mode. |
|
Lets you specify an OpenMP* threadprivate implementation. |
|
qopt-dword-index-for-array-of-structs, Qopt-dword-index-for-array-of-structs |
Lets the compiler use dword indexes to access elements of arrays of structs that do not exceed a specified number of bytes. |
Enables or disables dynamic data alignment optimizations. |
|
Determines how the compiler optimizes for throughput depending on whether the program is to run in single-job or multi-job mode. |
|
Passes options to a specified tool. |
|
Enables or disables a compiler-generated Matrix Multiply (matmul) library call. |
|
Controls the level of memory layout transformations performed by the compiler. |
|
qopt-multiple-gather-scatter-by-shuffles, Qopt-multiple-gather-scatter-by-shuffles |
Enables or disables the optimization for multiple adjacent gather/scatter type vector memory references. |
Enables or disables prefetch insertion optimization. |
|
Specifies the prefetch distance to be used for compiler-generated prefetches inside loops. |
|
Specifies that the compiler should only prefetch for loads inside the loop and ignore the stores, if any. |
|
Enables the generation of a YAML file that includes optimization transformation information. |
|
Specifies whether the output for the generated optimization report goes to a file, stderr, or stdout. |
|
Specifies whether mangled or unmangled names should appear in the optimization report. |
|
Specifies one or more optimizer phases for which optimization reports are generated. |
|
Specifies that the generated report should go to stdout. |
|
Enables generation of streaming stores for optimization. |
|
Defines a level of zmm registers usage. |
|
Lets you override certain internal compiler limits that are intended to prevent excessive memory usage or compile times for very large, complex compilation units. |
|
Specifies the default KIND for real and complex declarations, constants, functions, and intrinsics. |
|
Tells the compiler that all routines should be compiled for possible recursive execution. |
|
Tells the compiler to generate reentrant code to support a multithreaded application. |
|
Causes the compiler to compile to an assembly file only and not link. |
|
Tells the compiler that Cray* pointers do not alias other variables. |
|
Causes variables to be placed in static memory. |
|
Tells the compiler to save intermediate files created during compilation. |
|
Tells the compiler to produce a dynamic shared object instead of an executable. |
|
Causes Intel-provided libraries to be linked in dynamically. |
|
Links the GNU libgcc library dynamically. |
|
Controls the contents of the listing generated when option list is specified. |
|
Tells the compiler to issue compile-time messages for nonstandard language elements. |
|
Determines whether the compiler uses the current Fortran Standard rules or the old Fortran 2003 rules when interpreting assignment statements. |
|
Determines whether the current Fortran Standard behavior of the compiler is fully implemented. |
|
Prevents linking with shared libraries. |
|
Causes Intel-provided libraries to be linked in statically. |
|
Links the GNU libgcc library statically. |
|
Links the GNU libstdc++ library statically. |
|
Tells the compiler to check only for correct syntax. |
|
Specifies the root directory where headers and libraries are located. |
|
Tells the linker to read link commands from a file. |
|
Tells the compiler to compile the file as a Fortran source file. |
|
Tells the linker to search for unresolved references in a multithreaded runtime library. |
|
Tells the compiler to generate extra information in the object file to provide source file traceback information when a severe error occurs at runtime. |
|
Undefines any definition currently in effect for the specified symbol . |
|
Undefines all previously defined preprocessor values. |
|
Disables all predefined symbols . |
|
Tells the compiler the maximum number of times to unroll loops. |
|
Specifies that driver tool commands should be displayed and executed. |
|
Enables or disables vectorization. |
|
Sets a threshold for the vectorization of loops. |
|
Determines which vector function application binary interface (ABI) the compiler uses to create or call vector functions. |
|
Causes the runtime system to behave like HP* Fortran on OpenVMS* Alpha systems and VAX* systems (VAX FORTRAN*). |
|
Passes options to the assembler for processing. |
|
Specifies diagnostic messages to be issued by the compiler. |
|
Tells the compiler to display certain information to the console output window. |
|
Turns a compile-time bounds check into a warning. |
|
Tells the compiler to display its detailed version string. |
|
Tells the compiler to create a graphics or Fortran Windows application and link against the most commonly used libraries. |
|
Passes options to the linker for processing. |
|
Passes options to the preprocessor. |
|
Provides a way to disable the right margin wrapping that occurs in Fortran list-directed output. |
|
Removes standard directories from the include file search path. |
|
Tells the compiler which processor features it may target, including which instruction sets and optimizations it may generate. |
|
Tells the compiler to generate instructions for the highest instruction set available on the compilation host processor. |
|
Passes a linker option directly to the linker. |
|
Enables options to be passed to the specified tool in the device compilation tool chain for the OpenMP* target. |
|
Enables options to be passed to the specified tool in the device compilation tool chain for the SYCL* target. |
|
Initializes to zero variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are not yet initialized. This is a deprecated option. The replacement option is /Qinit:[no]zero or -init=[no]zero. |
|
Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file. |