llvm-extract - 从 LLVM 模块中提取函数

摘要

llvm-extract [选项] –func 函数名 [文件名]

描述

llvm-extract 命令接受函数名称并将其从指定的 LLVM 位码文件中提取出来。它主要用作调试工具,用于从触发错误的较大程序中减少测试用例。

除了提取指定函数的位码外,llvm-extract 还会删除不可到达的全局变量、原型和未使用的类型。

如果省略文件名或文件名是 -,则 llvm-extract 命令从标准输入读取其输入。输出始终写入标准输出,除非指定了 -o 选项(见下文)。

选项

–alias 别名

从 LLVM 位码中提取名为 函数名 的别名。可以多次指定以同时提取多个别名。

–ralias 别名正则表达式

从 LLVM 位码中提取与 别名正则表达式 匹配的别名。将提取与正则表达式匹配的所有别名。可以多次指定。

–bb 基本块说明符

提取在 基本块说明符 中指定的块。可以多次指定。每个 <函数:bb[;bb]> 说明符对将创建一个函数。如果在一个对中指定了多个基本块,则序列中的第一个块应该支配其余块。

–delete

从模块中删除指定的全局变量。

-f

在终端上启用二进制输出。通常,llvm-extract 会拒绝写入原始位码输出,如果输出流是终端。使用此选项,llvm-extract 将无论输出设备是什么都写入原始位码。

–func 函数名

从 LLVM 位码中提取名为 函数名 的函数。可以多次指定以同时提取多个函数。

–rfunc 函数正则表达式

从 LLVM 位码中提取与 函数正则表达式 匹配的函数。将提取与正则表达式匹配的所有函数。可以多次指定。

–glob 全局变量名

从 LLVM 位码中提取名为 全局变量名 的全局变量。可以多次指定以同时提取多个全局变量。

–rglob 全局变量正则表达式

从 LLVM 位码中提取与 全局变量正则表达式 匹配的全局变量。将提取与正则表达式匹配的所有全局变量。可以多次指定。

–keep-const-init

保留常量全局变量的值。

–recursive

递归提取所有被调用的函数

-help

打印命令行选项的摘要。

-o 文件名

指定输出文件名。如果文件名是“-”(默认值),则 llvm-extract 将其输出发送到标准输出。

-S

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

退出状态

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

另请参见

bugpoint(1)