-mllvm
Purpose
Passes options to LLVM components.
Syntax
Default
If -mllvm suboptions are specified without values, the default values of the suboptions are as follows:
- --aggressive-late-full-unroll=true
- --array-compress=true
- --disable-auto-paired-vec-ld=true
- --disable-auto-paired-vec-st=true
- --disable-paired-vec-ld=false
- --disable-paired-vec-st=false
- --dynamic-cast-opt=off
- --enable-aggressive-vectorization=true
- --enable-lvi-memoryssa=true
- --enable-partial-inlining=true
- --enable-ppc-gen-scalar-mass=true
- --enable-vec-find=true
- --fold-complex-pointer-compare=true
- --inline-hot-callsites-aggressively=true
- --ppc-enable-redxnintr=true
- --static-func-full-module-prefix=true
If the -mllvm option is not specified, the default values of the suboptions are as follows:
- --aggressive-late-full-unroll=false
- --array-compress=false
- --data-layout-opt=0
- --disable-auto-paired-vec-ld=true
- --disable-auto-paired-vec-st=true
- --disable-paired-vec-ld=false
- --disable-paired-vec-st=false
- --dynamic-cast-opt=off
- --enable-aggressive-vectorization=false
- --enable-lvi-memoryssa=false
- --enable-partial-inlining=false
- --enable-ppc-gen-scalar-mass=true
- --enable-vec-find=false
- --fold-complex-pointer-compare=true
- --inline-hot-callsites-aggressively=false
- --ppc-enable-redxnintr=false
- --static-func-full-module-prefix=true
- --vector-library=none
Parameters
- --aggressive-late-full-unroll
- Enables or disables more aggressive heuristics for the loop unroll optimization when it is beneficial to fully unroll a loop.
- --array-compress
- Compresses or not compresses a local array of integers into a smaller integer type when it is legal to do so; for example, when all possible values of the array elements are representable by a smaller integer type.
- --data-layout-opt
- Analyzes the whole program to determine whether the layout of data can be transformed to improve
the cache utilization and memory bandwidth of the program. This option has the 0, 1, 2, and 3
levels. The option is effective only when -qlto is also specified and
must be specified on both the compilation and linking steps with the same option level.
- data-layout-opt=0 disables the data layout transformation. No compiler analysis is performed for data layout optimization.
- data-layout-opt=1 enables the data layout transformation with whole program analysis. This is performed with a strict safety analysis.
- data-layout-opt=2 enables the data layout transformation with a more aggressive whole-program analysis. This is performed with a strict safety analysis.
- data-layout-opt=3 enables the data layout transformation and data compression with whole-program analysis. The compiler might implicitly change the default data type size to a non-default data type size.
- --disable-auto-paired-vec-ld
- Disables automatic generation of paired vector load (lxvp) instructions on Power10, such as by converting consecutive vector loads (lxv) into paired vector loads (lxvp). This option does not affect paired vector loads generated via the vec_lxvp intrinsic function.
- --disable-auto-paired-vec-st
- Disables automatic generation of paired vector store (stxvp) instructions on Power10, such as by converting consecutive vector stores (stxv) into paired vector stores (stxvp). This option does not affect paired vector stores generated via the vec_stxvp intrinsic function.
- --disable-paired-vec-ld
- Disables generation of all paired vector loads on Power10.
- --disable-paired-vec-st
- Disables generation of all paired vector stores on Power10.
- --dynamic-cast-opt
- Tries to convert the
__dynamic_castfunction call into an address comparison when possible. - --enable-aggressive-vectorization
- Enables or disables aggressive heuristics for loop vectorization.
- --enable-lvi-memoryssa
- Enables or disables an advanced value tracking analysis that leverages LLVM MemorySSA representation to track values stored in memory locations.
- --enable-partial-inlining
- Enables or disables the partial inlining optimization.
- --enable-ppc-gen-scalar-mass
- Enables or disables the replacement of math library functions with equivalent functions from the scalar MASS library.
- --enable-vec-find
- Enables or disables the vectorization of simple search loops if the loops operate on contiguous arrays.
- --fold-complex-pointer-compare
- Enables or disables the simplification of compare instructions that rely on inbounds semantics.
- --inline-hot-callsites-aggressively
- Enables or disables aggressive heuristics to decide which frequently executed functions need to be inlined.
- --ppc-enable-redxnintr
- Enables or disables the generation of PPC hardware reduction instructions for reductions without proving signed overflow safety.
- --ppc-set-dscr
- Passes on the Data Stream Control Register (DSCR) value to the linker. This value controls the depth of prefetch and how aggressive you need the prefetch to be.
- --static-func-full-module-prefix
- Determines whether to use full module build paths or base file names for static functions in the profile counter names.
- --vector-library
- Enables the automatic use of the given vector functions library.
- -vector-library=none does not enable the automatic use of any vector library.
- -vector-library=MASSV enables the automatic use of the IBM® MASS SIMD library.
