opt - LLVM 优化器

语法

opt [选项] [文件名]

描述

opt 命令是模块化的 LLVM 优化器和分析器。它接收 LLVM 源文件作为输入,在其上运行指定的优化或分析,然后输出优化后的文件。通过 opt 可用的优化取决于链接到其中的库以及使用 -load 选项加载的任何其他库。使用 -help 选项确定可以使用哪些优化。

如果命令行中省略了 filename 或为 “-”,opt 将从标准输入读取其输入。输入可以是 LLVM 汇编语言格式 (.ll) 或 LLVM 位码格式 (.bc)。

如果未使用 -o 选项指定输出文件名,opt 将其输出写入标准输出。

选项

-f

在终端上启用二进制输出。通常,如果输出流是终端,opt 将拒绝写入原始位码输出。使用此选项,opt 将忽略输出设备,写入原始位码。

-help

打印命令行选项的摘要。

-o <filename>

指定输出文件名。

-S

以 LLVM 中间语言(而不是位码)写入输出。

-{passname}

opt 提供了以任何顺序运行任何 LLVM 优化或分析传递的能力。 -help 选项列出了所有可用的传递。命令行上选项出现的顺序就是它们执行的顺序(在传递约束内)。

-strip-debug

此选项导致 opt 在应用其他优化之前从模块中删除调试信息。它与 -strip 本质上相同,但它确保首先删除调试信息。

-verify-each

此选项导致 opt 在命令行上其他指定的每个传递(包括 -verify)之后添加一个验证传递。这对于怀疑某个传递正在创建无效模块但尚不清楚哪个传递正在执行此操作的情况很有用。

-stats

打印统计信息。

-time-passes

记录每个传递所需的时间并将其打印到标准错误。

-debug

如果这是调试版本,此选项将启用来自使用 LLVM_DEBUG() 宏的传递的调试打印输出。有关更多信息,请参阅 LLVM 程序员手册 中的 #DEBUG 部分。

-load=<plugin>

加载动态对象 plugin。此对象应注册新的优化或分析传递。加载后,该对象将添加新的命令行选项以启用各种优化或分析。若要查看优化的新完整列表,请将 -help-load 选项一起使用。例如

opt -load=plugin.so -help
-print-passes

打印所有可用传递并退出。

退出状态

如果 opt 成功,它将以 0 退出。否则,如果发生错误,它将以非零值退出。