0
LLVMパスを使用してIRコードの分岐命令を削除します。LLVM Pass:IR内のすべてのブランチを削除するとエラーが発生する
以下のコードは、私の関数パス(Github)です:
virtual bool runOnFunction(Function &F) {
for (auto &B : F) {
for (auto &I : B) {
auto op_name = I.getOpcodeName();
if(strcmp(op_name, "br")==0) {
I.eraseFromParent();
}
}
}
return true;
}
機能パスが正常にコンパイルされていますが、私はtest.cの上でそれを使用する場合、それはPastebin
私は命令を格納するために使用されているが、これはあなたが、本質的に同じコンテナを反復処理しながら、消去することにより、基本ブロック内の命令コンテナを変更しているという事実としなければならないかもしれないものの容器はかなりわかりませんか? – PaulR