-mllvm

类别

可移植性和迁移

用途

将选项传递到 LLVM 组件。

语法

-mllvm 语法

读取语法图跳过可视语法图-mllvm--aggressive-late-full-unroll=truefalse--array-compress=truefalse--data-layout-opt=0123--disable-auto-paired-vec-ld=truefalse--disable-auto-paired-vec-st=truefalse--disable-paired-vec-ld=falsetrue--disable-paired-vec-st=falsetrue--enable-aggressive-vectorization=truefalse--enable-lvi-memoryssa=truefalse--enable-partial-inlining=truefalse--enable-vec-find=truefalse--fold-complex-pointer-compare=truefalse--inline-hot-callsites-aggressively=truefalse--ppc-enable-redxnintr=truefalse

缺省值

如果指定了不带值的 -mllvm 子选项,那么子选项的缺省值如下所示:

  • --aggressive-late-full-unroll =true
  • --array-compress =true
  • --disable-auto-paired-vec-ld =true
  • --disable-auto-paired-vec-st =true
  • --disable-paired-vec-ld =假
  • --disable-paired-vec-st =假
  • --enable-aggressive-vectorization =true
  • --enable-lvi-memoryssa =true
  • --enable-partial-inlining =true
  • --enable-vec-find =true
  • --fold-complex-pointer-compare =true
  • --inline-hot-callsites-aggressively =true
  • --ppc-enable-redxnintr =true

如果未指定 -mllvm 选项,那么子选项的缺省值如下所示:

  • --aggressive-late-full-unroll =假
  • --array-compress =假
  • --data-layout-opt=0
  • --disable-auto-paired-vec-ld =true
  • --disable-auto-paired-vec-st =true
  • --disable-paired-vec-ld =假
  • --disable-paired-vec-st =假
  • --enable-aggressive-vectorization =假
  • --enable-lvi-memoryssa =假
  • --enable-partial-inlining =假
  • --enable-vec-find =假
  • --fold-complex-pointer-compare =true
  • --inline-hot-callsites-aggressively =假
  • --ppc-enable-redxnintr =假

参数

--aggressive-late-full-unroll
在完全展开循环有益时,启用或禁用循环展开优化更积极的试探法。
--array-compress
在合法的情况下,将整数的局部数组压缩或不压缩为更小的整数类型;例如,当数组元素的所有可能值都可由较小的整数类型表示时。
--data-layout-opt
分析整个程序,以确定是否可以变换数据的布局来提高程序的高速缓存利用率和内存带宽。 此选项具有 0、1、2 和 3 级别。 仅当还指定了 -qlto 时,该选项才有效,并且必须在具有相同选项级别的编译和链接步骤 上指定此选项。
  • data-layout-opt=0 将禁用数据布局变换。 不为数据布局优化执行编译器分析。
  • data-layout-opt=1 支持通过整个程序分析进行数据布局变换。 这是通过严格的安全性分析来执行的。
  • data-layout-opt=2 支持通过更积极的整个程序分析进行数据布局变换。 这是通过严格的安全性分析来执行的。
  • data-layout-opt=3 支持通过整个程序分析进行数据布局变换和数据压缩。 编译器可能会将缺省数据类型大小隐式更改为非缺省数据类型大小。
--disable-auto-paired-vec-ld
在 Power10上禁用成对向量装入 (lxvp) 指令的自动生成,例如通过将连续向量装入 (lxv) 转换为成对向量装入 (lxvp)。 此选项不会影响通过 vec_lxvp 内部函数生成的成对向量负载。
--disable-auto-paired-vec-st
在 Power10上禁用成对向量存储 (stxvp) 指令的自动生成,例如通过将连续向量存储 (stxv) 转换为成对向量存储 (stxvp)。 此选项不会影响通过 vec_stxvp 内部函数生成的成对向量存储。
--disable-paired-vec-ld
在 Power10上禁用所有成对向量负载的生成。
--disable-paired-vec-st
在 Power10上禁用所有成对向量存储的生成。
--enable-aggressive-vectorization
启用或禁用针对循环向量化的积极试探法。
--enable-lvi-memoryssa
启用或禁用高级值跟踪分析,该分析利用 LLVM MemorySSA 表示来跟踪存储在内存位置中的值。
--enable-partial-inlining
启用或禁用部分内联优化。
--enable-vec-find
如果循环在连续阵列上运行,那么启用或禁用简单搜索循环的向量化。
--fold-complex-pointer-compare
启用或禁用依赖于入站语义的比较指令的简化。
--inline-hot-callsites-aggressively
启用或禁用积极的试探法来决定需要内联哪些频繁执行的函数。
--ppc-enable-redxnintr
启用或禁用生成 PPC 硬件缩减指令,以在不证明签名溢出安全性的情况下进行缩减。