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 退出。否则,如果发生错误,它将以非零值退出。