# Advanced Optimization Options

This section contains descriptions for compiler options that pertain to advanced optimization.

Parent topic: Compiler Options

- alias-const, Qalias-const
  Determines whether the compiler assumes a parameter of type pointer-to-const does not alias with a parameter of type pointer-to-non-const.
- ansi-alias, Qansi-alias
  Enables or disables the use of ANSI aliasing rules in optimizations.
- ansi-alias-check, Qansi-alias-check
  Enables or disables the ansi-alias checker.
- 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.
- fargument-alias, Qalias-args
  Determines whether function arguments can alias each other.
- fargument-noalias-global
  Tells the compiler that function arguments cannot alias each other and cannot alias global storage.
- ffreestanding, Qfreestanding
  Ensures that compilation takes place in a freestanding environment.
- fjump-tables
  Determines whether jump tables are generated for switch statements.
- ftls-model
  Changes the thread local storage (TLS) model.
- funroll-all-loops
  Unroll all loops even if the number of iterations is uncertain when the loop is entered.
- guide, Qguide
  Lets you set a level of guidance for auto-vectorization, auto parallelism, and data transformation.
- guide-data-trans, Qguide-data-trans
  Lets you set a level of guidance for data transformation.
- guide-file, Qguide-file
  Causes the results of guided auto parallelism to be output to a file.
- guide-file-append, Qguide-file-append
  Causes the results of guided auto parallelism to be appended to a file.
- guide-opts, Qguide-opts
  Tells the compiler to analyze certain code and generate recommendations that may improve optimizations.
- guide-par, Qguide-par
  Lets you set a level of guidance for auto parallelism.
- guide-vec, Qguide-vec
  Lets you set a level of guidance for auto-vectorization.
- ipp-link, Qipp-link
  Controls whether the compiler links to static or dynamic threaded Intel® Integrated Performance Primitives (Intel® IPP) run-time libraries.
- qdaal, Qdaal
  Tells the compiler to link to certain libraries in the Intel® oneAPI Data Analytics Library (oneDAL).
- qipp, Qipp
  Tells the compiler to link to some or all of the Intel® Integrated Performance Primitives (Intel® IPP) libraries.
- 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 parameters in registers instead of on the stack. This is a deprecated option that may be removed in a future release.
- 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.
- qopt-block-factor, Qopt-block-factor
  Lets you specify a loop blocking factor.
- qopt-calloc
  Tells the compiler to substitute a call to _intel_fast_calloc() for a call to calloc().
- qopt-class-analysis, Qopt-class-analysis
  Determines whether C++ class hierarchy information is used to analyze and resolve C++ virtual function calls at compile time.
- qopt-dynamic-align, Qopt-dynamic-align
  Enables or disables dynamic data alignment optimizations.
- qopt-jump-tables, Qopt-jump-tables
  Enables or disables generation of jump tables for switch statements.
- qopt-malloc-options
  Lets you specify an alternate algorithm for malloc().
- 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.
- 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.
- qopt-prefetch-distance, Qopt-prefetch-distance
  Specifies the prefetch distance to be used for compiler-generated prefetches inside loops.
- qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint
  Supports the prefetchW instruction in Intel® microarchitecture code name Broadwell and later.
- qopt-ra-region-strategy, Qopt-ra-region-strategy
  Selects the method that the register allocator uses to partition each routine into regions.
- 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.
- 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.
- qtbb, Qtbb
  Tells the compiler to link to the Intel® oneAPI Threading Building Blocks (oneTBB) libraries.
- Qvla
  Determines whether variable length arrays are enabled.
- scalar-rep, Qscalar-rep
  Enables or disables the scalar replacement optimization done by the compiler as part of loop transformations.
- simd, Qsimd
  Enables or disables compiler interpretation of simd pragmas.
- simd-function-pointers, Qsimd-function-pointers
  Enables or disables pointers to simd-enabled functions.
- 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.
- use-intel-optimized-headers, Quse-intel-optimized-headers
  Determines whether the performance headers directory is added to the include path search list.
- vec, Qvec
  Enables or disables vectorization.
- vec-guard-write, Qvec-guard-write
  Tells the compiler to perform a conditional check in a vectorized loop.
- 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.