# Advanced Optimization Options

This section contains descriptions for compiler options that pertain to advanced optimization. They are listed in alphabetical order.

Parent topic: Compiler Options

- ansi-alias, Qansi-alias
  Tells the compiler to assume certain rules of the Fortran standard regarding aliasing and array bounds.
- coarray, Qcoarray
  Enables the coarray feature.
- coarray-config-file, Qcoarray-config-file
  Specifies the name of a Message Passing Interface (MPI) configuration file.
- coarray-num-images, Qcoarray-num-images
  Specifies the default number of images that can be used to run a coarray executable.
- complex-limited-range, Qcomplex-limited-range
  Determines whether the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX is enabled. This feature is only available for ifort.
- fvec-peel-loops, Qvec-peel-loops
  Enables peel loop vectorization. This feature is only available for ifx.
- fvec-remainder-loops, Qvec-remainder-loops
  Enables remainder loop vectorization. This feature is only available for ifx.
- fvec-with-mask, Qvec-with-mask
  Enables vectorization for short trip-count loops with masking. This feature is only available for ifx.
- guide, Qguide
  Lets you set a level of guidance for auto-vectorization, auto parallelism, and data transformation. This feature is only available for ifort.
- guide-data-trans, Qguide-data-trans
  Lets you set a level of guidance for data transformation. This feature is only available for ifort.
- guide-file, Qguide-file
  Causes the results of guided auto parallelism to be output to a file. This feature is only available for ifort.
- guide-file-append, Qguide-file-append
  Causes the results of guided auto parallelism to be appended to a file. This feature is only available for ifort.
- guide-opts, Qguide-opts
  Tells the compiler to analyze certain code and generate recommendations that may improve optimizations. This feature is only available for ifort.
- guide-par, Qguide-par
  Lets you set a level of guidance for auto parallelism. This feature is only available for ifort.
- guide-vec, Qguide-vec
  Lets you set a level of guidance for auto-vectorization. This feature is only available for ifort.
- heap-arrays
  Puts automatic arrays and arrays created for temporary computations on the heap instead of the stack.
- pad, Qpad
  Enables the changing of the variable and array memory layout.
- qmkl, Qmkl
  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.
- qopt-args-in-regs, Qopt-args-in-regs
  Determines whether calls to routines are optimized by passing arguments in registers instead of on the stack. This is a deprecated option that may be removed in a future release. This feature is only available for ifort.
- qopt-assume-safe-padding, Qopt-assume-safe-padding
  Determines whether the compiler assumes that variables and dynamically allocated memory are padded past the end of the object. This feature is only available for ifort.
- qopt-block-factor, Qopt-block-factor
  Lets you specify a loop blocking factor. This feature is only available for ifort.
- qopt-dynamic-align, Qopt-dynamic-align
  Enables or disables dynamic data alignment optimizations.
- qopt-for-throughput, Qopt-for-throughput
  Determines how the compiler optimizes for throughput depending on whether the program is to run in single-job or multi-job mode. This feature is only available for ifx.
- qopt-jump-tables, Qopt-jump-tables
  Enables or disables generation of jump tables for switch statements. This feature is only available for ifort.
- qopt-malloc-options
  Lets you specify an alternate algorithm for malloc(). This feature is only available for ifort.
- qopt-matmul, Qopt-matmul
  Enables or disables a compiler-generated Matrix Multiply (matmul) library call.
- qopt-mem-layout-trans, Qopt-mem-layout-trans
  Controls the level of memory layout transformations performed by the compiler.
- qopt-multi-version-aggressive, Qopt-multi-version-aggressive
  Tells the compiler to use aggressive multi-versioning to check for pointer aliasing and scalar replacement. This feature is only available for ifort.
- 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.
- qopt-prefetch, Qopt-prefetch
  Enables or disables prefetch insertion optimization. This feature is only available for ifort.
- qopt-prefetch-distance, Qopt-prefetch-distance
  Specifies the prefetch distance to be used for compiler-generated prefetches inside loops. This feature is only available for ifort.
- qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint
  Supports the prefetchW instruction in Intel® microarchitecture code name Broadwell and later. This feature is only available for ifort.
- qopt-ra-region-strategy, Qopt-ra-region-strategy
  Selects the method that the register allocator uses to partition each routine into regions. This feature is only available for ifort.
- qopt-streaming-stores, Qopt-streaming-stores
  Enables generation of streaming stores for optimization.
- qopt-subscript-in-range, Qopt-subscript-in-range
  Determines whether the compiler assumes that there are no "large" integers being used or being computed inside loops. This feature is only available for ifort.
- qopt-zmm-usage, Qopt-zmm-usage
  Defines a level of zmm registers usage.
- qoverride-limits, Qoverride-limits
  Lets you override certain internal compiler limits that are intended to prevent excessive memory usage or compile times for very large, complex compilation units. This feature is only available for ifort.
- reentrancy
  Tells the compiler to generate reentrant code to support a multithreaded application.
- safe-cray-ptr, Qsafe-cray-ptr
  Tells the compiler that Cray* pointers do not alias other variables.
- scalar-rep, Qscalar-rep
  Enables or disables the scalar replacement optimization done by the compiler as part of loop transformations. This feature is only available for ifort.
- simd, Qsimd
  Enables or disables compiler interpretation of SIMD directives.This feature is only available for ifort.
- unroll, Qunroll
  Tells the compiler the maximum number of times to unroll loops.
- unroll-aggressive, Qunroll-aggressive
  Determines whether the compiler uses more aggressive unrolling for certain loops. This feature is only available for ifort.
- vec, Qvec
  Enables or disables vectorization.
- vec-guard-write, Qvec-guard-write
  Tells the compiler to perform a conditional check in a vectorized loop. This feature is only available for ifort.
- vec-threshold, Qvec-threshold
  Sets a threshold for the vectorization of loops.
- vecabi, Qvecabi
  Determines which vector function application binary interface (ABI) the compiler uses to create or call vector functions. This feature is only available for ifort.