2

CコードのLLVMコンパイラによって生成されたAST、基本ブロックなどをトラバースするヘルパーメソッドはありますか?

4

2 に答える 2

1

モジュールを (.c ファイルからコンパイルされた .bc ファイルからclang -emit-llvm) モジュールをロードし、その関数、基本ブロックなどをトラバースしようとしている場合は、llvm::Moduleクラスから開始することをお勧めします。グローバル変数と関数を反復するための関数があります。次に、llvm::Functionクラスには、基本ブロックを反復するための関数があります。次に、llvm::BasicBlockクラスには、命令を反復するための関数があります。

または、必要に応じて、Clang によって作成された AST 構造をトラバースすることもできます。コードの例を次に示します: http://eli.thegreenplace.net/2012/06/08/basic-source-to-source-transformation-with-clang/

于 2013-01-22T00:44:14.920 に答える