llvm-extract - LLVMモジュールから関数を抽出する

概要

llvm-extract [オプション] –func 関数名 [ファイル名]

説明

llvm-extract コマンドは、関数の名前を受け取り、指定されたLLVMビットコードファイルからそれを抽出します。これは主に、バグを引き起こしている大きなプログラムからテストケースを削減するためのデバッグツールとして使用されます。

指定された関数のビットコードを抽出することに加えて、llvm-extract は、到達不能なグローバル変数、プロトタイプ、および未使用の型も削除します。

llvm-extract コマンドは、ファイル名が省略された場合、またはファイル名が-の場合、標準入力から入力を読み取ります。出力は、-o オプションが指定されていない限り、常に標準出力に書き込まれます(下記参照)。

オプション

–alias エイリアス名

LLVMビットコードから関数名という名前のエイリアスを抽出します。複数のエイリアスを一度に抽出するために、複数回指定できます。

–ralias エイリアス正規表現

LLVMビットコードからエイリアス正規表現に一致するエイリアスを抽出します。正規表現に一致するすべてのエイリアスが抽出されます。複数回指定できます。

–bb 基本ブロック指定子

基本ブロック指定子で指定された基本ブロックを抽出します。複数回指定できます。各<関数:bb[;bb]>指定子のペアは関数を作成します。1つのペアに複数の基本ブロックが指定されている場合、シーケンス内の最初のブロックは残りを支配する必要があります。

–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で終了します。それ以外の場合、エラーが発生すると、0以外の値で終了します。

関連項目

bugpoint(1)