Offload Compilation, OpenMP*, and Parallel Processing Options
This section contains descriptions for compiler options that pertain to offload compilation, OpenMP*, or parallel processing. They are listed in alphabetical order.
device-math-lib
Enables or disables certain device libraries.
fintelfpga
Lets you perform ahead-of-time (AOT) compilation for the Field Programmable Gate Array (FPGA).
fiopenmp, Qiopenmp
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 -qopenmp (and /Qopenmp).
flink-huge-device-code
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.
fno-sycl-libspirv
Disables the check for libspirv (the SPIR-V* tools library).
fopenmp
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-device-lib
Enables or disables certain device libraries for an OpenMP* target.
fopenmp-device-link, Qopenmp-device-link
Determines whether the compiler performs a device link during the compilation step instead of a link step. When enabled for OpenMP offload compilations, it produces file device binaries within the generated fat object.
fopenmp-target-buffers, Qopenmp-target-buffers
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-loopopt, Qopenmp-target-loopopt
Enables the loop optimizer and auto-vectorization for OpenMP* offloading device compilation when option O2 or higher is set or specified.
fopenmp-target-simd, Qopenmp-target-simd
Enables OpenMP* SIMD loop vectorization for OpenMP offloading device compilation when option level O2 or higher is set or specified.
fsycl
Enables a program to be compiled as a SYCL program rather than as plain C++11 program.
fsycl-add-default-spec-consts-image
Enables or disables generation of a copy of every device image that uses a specialization constant, and replaces all instances of that specialization constant with default values defined in the relevant specialization_id variable.
fsycl-allow-device-dependencies
Determines whether dependencies are allowed between device images when splitting device code.
fsycl-enable-function-pointers
Enables function pointers and support for virtual functions for SYCL kernels and device functions. This is an experimental feature.
fsycl-esimd-force-stateless-mem
Determines whether the compiler enforces stateless memory accesses within ESIMD kernels on the target device. This is an experimental feature.
fsycl-explicit-simd
Enables or disables the experimental "Explicit SIMD" SYCL* extension. This is a deprecated option that may be removed in a future release.
fsycl-force-target
Forces the compiler to use the specified target triple device when extracting device code from any given objects on the command line.
fsycl-fp64-conv-emu
Tells the compiler to use fp64 partial emulation for kernels with only fp64 conversion operations and no fp64 computation operations. It requires an Intel GPU that supports fp64 partial emulation.
fsycl-help
Causes help information to be emitted from the device compiler backend.
fsycl-host-compiler
Tells the compiler to use the specified compiler for the host compilation of the overall offloading compilation that is performed.
fsycl-instrument-device-code
Enables or disables linking of the Instrumentation and Tracing Technology (ITT) device libraries for VTune™.
fsycl-link
Tells the compiler to perform a partial link of device binaries to be used with Field Programmable Gate Array (FPGA).
fsycl-max-parallel-link-jobs
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.
fsycl-optimize-non-user-code
Tells the compiler to optimize SYCL framework utility functions and to leave the kernel code unoptimized for further debugging.
fsycl-pstl-offload
Enables the automatic offloading of C++ standard parallel algorithms to a SYCL device.
fsycl-rdc
Determines whether the compiler generates relocatable device code during SYCL* offload target compilation.
fsycl-remove-unused-external-funcs
Determines whether unused SYCL_EXTERNAL functions are removed during compilation of SYCL device code.
fsycl-targets
Tells the compiler to generate code for specified device targets.
fsycl-use-bitcode
Tells the compiler to produce device code in LLVM Intermediate Representation (IR) bitcode format into fat objects.
ftarget-compile-fast
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.
ftarget-export-symbols
Exposes exported symbols in a generated target library to allow for visibility to other modules.
nolibsycl
Disables linking of the SYCL* runtime library.
qopenmp, Qopenmp
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).
qopenmp-link
Controls whether the compiler links to static or dynamic OpenMP* runtime libraries.
reuse-exe
Tells the compiler to speed up Field Programmable Gate Array (FPGA) target compile time by reusing a previously compiled FPGA hardware image.
Wno-sycl-strict
Disables warnings that enforce strict SYCL* language compatibility.
Xopenmp-target
Enables options to be passed to the specified tool in the device compilation tool chain for the OpenMP* target.