5

モジュール全体を分析するパスがあります (を使用runOnFunction())。しかし、各実行パスに適用したいと思います。実行パスとは、プログラム内のポイント (start で注釈が付けられている) から始まり、プログラムの終了点 (end で注釈が付けられている) までの一連の命令を意味します。

CallGraph を作成してモジュールを関数に分割し、前述の CallGraph のノードで CFG を作成してすべての関数を命令に分割する必要があると仮定します。選択したノードからの実行パスは、CallGraph リーフで終了するすべてのパスであると想定しています (CFG 間で通信できるはずです)。そのノードから、グラフ検索アルゴリズムを使用してすべてのパスを確認できます。

runOnFunction()/runOnModule()メソッドをユーザー定義のようなものに置き換える可能性はありrunOnExecutionPath()ますか? もしそうなら、LLVMには実行パスを格納するのに適した構造がありますか? 別の可能性は、getAnalysis<CallGraph>またはgetAnalysis<CFG>?を使用することです。私は混乱しています。

アドバイスありがとうございました!

4

0 に答える 0