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 的优化或分析 pass 的能力。
-help
选项列出了所有可用的 pass。选项在命令行中出现的顺序是它们执行的顺序 (在 pass 约束内)。
- -strip-debug¶
此选项使 opt 在应用其他优化之前从模块中剥离调试信息。它本质上与 -strip 相同,但它确保首先完成调试信息的剥离。
- -verify-each¶
此选项使 opt 在命令行上指定的每个 pass (包括 -verify) 之后添加一个验证 pass。这对于怀疑某个 pass 正在创建无效模块但不清楚是哪个 pass 正在执行此操作的情况很有用。
- -stats¶
打印统计信息。
- -time-passes¶
记录每个 pass 所需的时间量,并将其打印到标准错误。
- -debug¶
如果这是一个调试构建,此选项将启用来自使用
LLVM_DEBUG()
宏的 pass 的调试打印输出。有关更多信息,请参阅 LLVM 程序员手册,#DEBUG
部分。
- -load=<plugin>¶
加载动态对象
plugin
。此对象应注册新的优化或分析 pass。加载后,该对象将添加新的命令行选项以启用各种优化或分析。要查看新的完整优化列表,请将-help
和-load
选项一起使用。例如opt -load=plugin.so -help
- -print-passes¶
打印所有可用的 pass 并退出。
退出状态¶
如果 opt 成功,它将以 0 退出。否则,如果发生错误,它将以非零值退出。