Visible to Intel only — GUID: GUID-59331A36-D05E-4A4B-9122-986D9341361A
Visible to Intel only — GUID: GUID-59331A36-D05E-4A4B-9122-986D9341361A
Alphabetical Option List
The following table lists current compiler options in alphabetical order.
Clang compiler options are supported for this compiler. We do not document these options, but you can check -help on the command line to see if a particular option is supported. For more information about Clang options, see the Clang documentation.
Enables language compatibility with the gcc option ansi. |
|
Tells the compiler which features it may target, including which instruction sets it may generate. |
|
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. |
|
Places comments in preprocessed source output. |
|
Causes the compiler to generate an object only and not link. |
|
Defines a macro name that can be associated with an optional value. |
|
Same as option -dM, but outputs #define directives in preprocessed source. |
|
Enables or disables generation of debugging information. |
|
Enables or disables generation of debugging information. |
|
Enables or disables certain device libraries. This is a deprecated option that may be removed in a future release. |
|
Tells the compiler to output macro definitions in effect after preprocessing. |
|
Specifies that driver tool commands should be shown but not executed. |
|
Displays the target machine and operating system configuration. |
|
Displays the version number of the compiler. |
|
Causes the preprocessor to send output to stdout. |
|
Specifies the model of exception handling to be performed. |
|
Causes the preprocessor to send output to stdout, omitting #line directives. |
|
Specifies the stack reserve amount for the program. |
|
Specifies that an assembly listing file should be generated. |
|
Enables the use of blocks and entire functions of assembly code within a C or C++ file. |
|
Maximizes speed across the entire program. |
|
Determines whether unwind information is precise at an instruction boundary or at a call boundary. |
|
Enables or disables inline expansion of intrinsic functions. |
|
Enables Control-flow Enforcement Technology (CET) protection, which defends your program from certain attacks that exploit vulnerabilities. This option offers preliminary support for CET. |
|
Determines whether the compiler treats common symbols as global definitions. |
|
Places each data item in its own COMDAT section. |
|
Specifies the name for a built program or dynamic-link library. |
|
Enables exception handling table generation. |
|
Controls when the compiler is permitted to form fused floating-point operations, such as fused multiply-add (FMA). Fused operations are allowed to produce more precise results than performing the individual operations separately. |
|
Ensures that compilation takes place in a freestanding environment. |
|
Places each function in its own COMDAT section. |
|
Tells the compiler to use C89 semantics for inline functions when in C99 mode. |
|
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® oneAPI DPC++/C++ Compiler Math Library (LIBM) to implement math library functions. |
|
Tells the compiler to inline functions declared with __inline and perform C++ inlining . |
|
Enables function inlining for single file compilation. |
|
Lets you perform ahead-of-time (AOT) compilation for the Field Programmable Gate Array (FPGA). |
|
Enables recognition of OpenMP* features, such as parallel, simd, and offloading directives, and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. This is an alternate option for compiler option -qopenmp (and /Qopenmp). |
|
Tells the preprocessor to include a specified file name as the header file. |
|
Causes the linker to create a program that can be loaded only at its preferred base address. |
|
Determines whether jump tables are generated for switch statements. |
|
Tells the compiler to preserve allocation of variables that are not referenced in the source. |
|
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 whole program link time optimization (LTO). |
|
Determines whether the compiler generates fused multiply-add (FMA) instructions if such instructions exist on the target processor. |
|
Tells the compiler that errno can be reliably tested after calls to standard math library functions. |
|
Tells the compiler to not recognize typeof as a keyword. |
|
Disables support for the operator names specified in the standard. |
|
Disables support for runtime type information (RTTI). |
|
Disables the check for libspirv (the SPIR-V* tools library). |
|
Specifies the name for an object file. |
|
Tells the compiler to link with a fat (multi-architecture) static library. This is a deprecated option that may be removed in a future release. |
|
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. This option leads to lowering of OpenMP constructs in the compiler front-end (as it is implemented by the LLVM community) and is expected to be not as performant as using the option -fiopenmp, which enables the Intel implementation of OpenMP constructs where the lowering is done in the compiler backend. Also, this option does not support offloading to GPUs. |
|
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 pragma. |
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-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. |
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. |
|
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. |
|
Lets you specify an alternate path or file name for precompiled header files. |
|
Specifies that structure members should be packed together. |
|
Tells the compiler to allow for non-conformant code. |
|
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. |
|
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. |
|
Specifies the directory where .dwo files should be stored when using -fprofile-sample-generate and -gsplit-dwarf. This is an experimental feature. |
|
Enables the use of a pre-trained machine learning model to predict branch execution probabilities driving profile-guided optimizations. |
|
Enables the compiler and linker to generate information and adjust optimization for Hardware Profile-Guided Optimization (HWPGO). |
|
Enables the compiler and linker to use information for Hardware Profile-Guided Optimization (HWPGO). This is an experimental feature. |
|
Tells the compiler the mode in which to speculate on floating-point operations. |
|
Tells the compiler to allocate as many bytes as needed for enumerated types. |
|
Enables or disables stack overflow security checks for certain (or all) routines. |
|
Determines whether the compiler generates code that detects some buffer overruns. |
|
Enables a program to be compiled as a SYCL* program rather than as plain C++11 program. |
|
Lets you add arbitrary device binary images to the fat SYCL* binary when linking. This is a deprecated option that may be removed in a future release. |
|
Enables elimination of SYCL dead kernel arguments. |
|
Specifies a SYCL* device code module assembly. |
|
Enables or disables certain device libraries for a SYCL* target. |
|
Lets you specify the format of device code stored in a resulting object. This is an experimental option. |
|
Tells the compiler to generate a device-only binary. |
|
Enables LLVM-related optimizations before SPIR-V* generation. |
|
Enables function pointers and support for virtual functions for SYCL kernels and device functions. This is an experimental feature. |
|
Determines whether the compiler enforces stateless memory accesses within ESIMD kernels on the target device. This is an experimental feature. |
|
Enables or disables the experimental "Explicit SIMD" SYCL* extension. This is a deprecated option that may be removed in a future release. |
|
Forces the compiler to use the specified target triple device when extracting device code from any given objects on the command line. |
|
Causes help information to be emitted from the device compiler backend. |
|
Tells the compiler to use the specified compiler for the host compilation of the overall offloading compilation that is performed. |
|
Passes options to the compiler specified by option fsycl-host-compiler. |
|
Tells the compiler to assume that SYCL ID queries fit within MAX_INT. |
|
Enables or disables linking of the Instrumentation and Tracing Technology (ITT) device libraries for VTune™. |
|
Tells the compiler to perform a partial link of device binaries to be used with Field Programmable Gate Array (FPGA). |
|
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. This is a deprecated option that will be removed in a future release. |
|
Tells the compiler to link only device code. This is a deprecated option that may be removed in a future release. |
|
Tells the compiler that it can simultaneously spawn up to the specified number of processes to perform actions required to link SYCL applications. This is an experimental feature. |
|
Tells the compiler to optimize SYCL framework utility functions and to leave the kernel code unoptimized for further debugging. |
|
Enables the offloading of C++ standard parallel algorithms to a SYCL device. This is an experimental feature. |
|
Determines whether the compiler generates relocatable device code during SYCL offload target compilation. |
|
Tells the compiler to generate code for specified device targets. |
|
Enables unnamed SYCL* lambda kernels. |
|
Tells the compiler to produce device code in LLVM Intermediate Representation (IR) bitcode format into fat objects. |
|
Tells the compiler to check only for correct syntax. |
|
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. |
|
Exposes exported symbols in a generated target library to allow for visibility to other modules. |
|
Specifies a register allocation mode for specific hardware for use by supported target backends. |
|
Flushes denormal results to zero. |
|
Sets the default character type to unsigned. |
|
Tells the compiler to use a different linker instead of the default linker, which is ld on Linux and link on Windows. |
|
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 declarations, functions, or variables. |
|
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. |
|
Enables faster access to certain thread-local storage (TLS) variables. |
|
Lets you specify the location of the base toolchain. |
|
Makes __cdecl the default calling convention. |
|
Lets you specify a DWARF Version format when generating debug information. |
|
Enables read-only string-pooling optimization. |
|
Enables or disables C++ Runtime Type Information (RTTI). |
|
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 control flow protection mechanisms. |
|
Tells the compiler to use the vector calling convention (__vectorcall) when passing vector type arguments. |
|
Tells the compiler to display the include file order and continue compilation. |
|
Displays a list of supported compiler options in alphabetical order. |
|
Specifies an additional directory to search for include files. |
|
Adds a directory to the second include file search path. |
|
Allows a header to be specified that is included in front of the other headers in the translation unit. |
|
Enables interprocedural optimization between files. |
|
Controls whether the compiler links to static or dynamic threaded Intel® Integrated Performance Primitives (Intel® IPP) runtime libraries. |
|
Lets you indicate the prefix for referencing directories that contain header files. |
|
Adds a directory to the front of the include file search path for files included with quotes but not brackets. |
|
Specifies a directory to add to the start of the system include path. |
|
Appends a directory to the prefix passed in by -iprefix and puts it on the include search path at the end of the include directories. |
|
Similar to -iwithprefix except the include directory is placed in the same place as -I command-line include directories. |
|
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. |
|
Specifies that a program should be linked as a dynamic-link (DLL) library. |
|
Passes user-specified options directly to the linker at compile time. |
|
Tells the compiler which features it may target, including which instruction set architecture (ISA) it may generate. |
|
Tells the compiler to generate makefile dependency lines for each source file. |
|
Tells the compiler to generate code for a specific architecture. |
|
Specifies whether the compiler can use x87 instructions. |
|
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. |
|
Preprocess and compile, generating output file containing dependency information ending with extension .d. |
|
Tells the compiler to generate makefile dependency information in a file. |
|
Tells the compiler to generate makefile dependency lines for each source file. |
|
Enables functions containing calls to intrinsics that require a specific CPU feature to have their target architecture automatically promoted to allow the required feature. |
|
Tells the compiler to generate makefile dependency lines for each source file. |
|
Tells the compiler to generate an output file containing dependency information. |
|
Disables the generation of gather instructions in auto-vectorization. |
|
Disables the generation of scatter instructions in auto-vectorization. |
|
Determines whether the frame pointer is omitted or kept in leaf functions. |
|
Changes the default target rule for dependency generation. |
|
Tells the linker to search for unresolved references in a multithreaded, static runtime library. |
|
Changes the default target rule for dependency generation. |
|
Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march). |
|
Prevents the compiler from using standard libraries when linking. |
|
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. |
|
Tells the compiler to not display compiler version information. |
|
Prevents the compiler from using standard startup files when linking. |
|
Do not search for header files in the standard directories for C++, but search the other standard directories. |
|
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. |
|
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 maximum optimizations. |
|
Tells the compiler to stop the compilation process and write the results to a file. |
|
Enables control of floating-point significand precision. |
|
Determines whether the compiler generates position-independent code that will be linked into an executable. |
|
Tells the compiler to use pthreads library for multithreading support. |
|
Tells the compiler to include the Algorithmic C (AC) data type folder for header searches and link to the AC data types libraries for Field Programmable Gate Array (FPGA) and CPU compilations. |
|
Tells the compiler to link to certain libraries in the Intel® oneAPI Data Analytics Library ( oneDAL ). |
|
Tells the compiler to link to some or all of the Intel® Integrated Performance Primitives (Intel® IPP) libraries. |
|
Changes the default size of the long double data type. |
|
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. |
|
Enables recognition of OpenMP* features, such as parallel, simd, and offloading directives, and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. This is an alternate name for compiler option -fiopenmp (and /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. |
|
Passes options to a specified tool. |
|
qopt-assume-no-loop-carried-dep, Qopt-assume-no-loop-carried-dep |
Lets you set a level of performance tuning for loops. |
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. |
|
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 that the generated report should go to stdout. |
|
Enables generation of streaming stores for optimization. |
|
Tells the compiler to link to the Intel® oneAPI Threading Building Blocks ( oneTBB ) libraries. |
|
Tells the compiler that the __regcall calling convention should be used for functions that do not directly specify a calling convention. |
|
Tells the compiler to speed up Field Programmable Gate Array (FPGA) target compile time by reusing a previously compiled FPGA hardware image. |
|
Causes the compiler to compile to an assembly file only and not link. |
|
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. |
|
Tells the compiler to display a list of the include files. |
|
Tells the compiler to save the compilation options in the executable file. |
|
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 conform to a specific language standard. |
|
Tells the compiler to implement strict ANSI conformance dialect. |
|
Specifies the root directory where headers and libraries are located. |
|
Tells the linker to read link commands from a file. |
|
Tells the compiler to process all source or unrecognized file types as C source files. |
|
Tells the compiler to process a file as a C source file. |
|
Tells the compiler to process all source or unrecognized file types as C++ source files. This is a deprecated option that may be removed in a future release. |
|
Tells the compiler to process a file as a C++ source file. |
|
Undefines any definition currently in effect for the specified macro . |
|
Tells the compiler the specified symbol is undefined. |
|
Disables all predefined macros . |
|
Tells the compiler the maximum number of times to unroll loops. |
|
Enables the use of blocks and entire functions of assembly code within a C or C++ file. |
|
Specifies that driver tool commands should be displayed and executed. |
|
Enables or suppresses hidden vtordisp members in C++ objects. |
|
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. |
|
Tells the compiler to display GCC-style version information. |
|
Selects the general representation that the compiler uses for pointers to members. |
|
Enables pointers to members of any inheritance type. |
|
Disables all warning messages. |
|
Specifies the level of diagnostic messages to be generated by the compiler. |
|
Passes options to the assembler for processing. |
|
Determines whether a warning is issued if generated code is not C++ ABI compliant. |
|
Enables warning and error diagnostics. |
|
Determines whether the compiler performs source code checking for Unicode vulnerabilities. |
|
Determines whether a warning is issued when /* appears in the middle of a /* */ comment. |
|
Determines whether warnings are issued for deprecated C++ headers. |
|
Changes all warnings to errors. |
|
Causes all warnings and currently enabled remarks to be reported as errors. |
|
Determines whether warnings are issued about extra tokens at the end of preprocessor directives. |
|
Determines whether argument checking is enabled for calls to printf, scanf, and so forth. |
|
Determines whether the compiler issues a warning when the use of format functions may cause security problems. |
|
Passes options to the linker for processing. |
|
Determines whether a warning is issued if the return type of main is not expected. |
|
Determines whether warnings are issued for global functions and variables without prior declaration. |
|
Determines whether warnings are issued for missing prototypes. |
|
Disables warnings that enforce strict SYCL* language compatibility. |
|
Passes options to the preprocessor. |
|
Determines whether warnings are issued for questionable pointer arithmetic. |
|
Tells the compiler to issue a warning when the order of member initializers does not match the order in which they must be executed. |
|
Determines whether warnings are issued when a function is declared without a return type, when the definition of a function returning void contains a return statement with an expression, or when the closing brace of a function returning non-void is reached. |
|
Determines whether a warning is issued when a variable declaration hides a previous declaration. |
|
Determines whether warnings are issued when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned. |
|
Determines whether warnings are issued for code that might violate the optimizer's strict aliasing rules. |
|
Determines whether warnings are issued for functions declared or defined without specified argument types. |
|
Determines whether warnings are issued if any trigraphs are encountered that might change the meaning of the program. |
|
Determines whether a warning is issued if a variable is used before being initialized. |
|
Determines whether a warning is issued if an unknown #pragma directive is used. |
|
Determines whether a warning is issued if a declared function is not used. |
|
Determines whether a warning is issued if a local or non-constant static variable is unused after being declared. |
|
Issues a diagnostic message if const char * is converted to (non-const) char *. |
|
Removes standard directories from the include file search path. |
|
All source files found subsequent to -x type will be recognized as a particular type. |
|
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. |
|
Passes options to the backend tool. |
|
Enables options to be passed to the specified tool in the device compilation tool chain for the SYCL* target. |
|
Tells the compiler to ignore all other precompiled header files. |
|
Tells the compiler to create a precompiled header file. |
|
Tells the compiler to use a precompiled header file. |
|
Lets you specify ANSI C standard conformance for certain language features. |
|
Tells the compiler to generate function prototypes. This is a deprecated option that may be removed in a future release. |
|
Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file. |
|
Causes library names to be omitted from the object file. |
|
Specifies alignment for structures on byte boundaries. |