0

基本ブロックをエッジに挿入する必要があります。次のリンクで SplitEdge メソッドを使用しようとし ました: http://llvm.org/docs/doxygen/html/BasicBlockUtils_8cpp_source.html ここで答えを見つけました: http://lists.cs.uiuc.edu/pipermail/llvmdev/ 2010-July/033288.html しかし、runonFunction に設定したくないのですが、pass が null に等しくないという問題に直面せずに使用するにはどうすればよいでしょうか ありがとう

4

1 に答える 1

1

最も簡単な方法は、メソッドの実装を独自のコードにコピーしSplitEdge、パスが NULL のときに機能するように変更することだと思います。現在の実装では、独自のバージョンの を呼び出すように変更することを意味し、そのバージョンでは の呼び出しの前にSplitBlock追加するだけです。return newP

ただし、LLVM IR でこの種の操作を行う場合は、適切なパス内から実行することを検討してください。これにより、コードが既存のパスでよりうまく機能するようになります。

于 2013-05-05T06:47:58.360 に答える