Llvm删除终结者指令

时间:2013-08-18 18:38:48

标签: llvm terminator unreachable-statement

我想删除一个UnreachableInst,因为之前的转换使其可以访问。但是,调用eraseFromParent()会给我一个格式错误的BasicBlock,因为UnreachableInst是其BasicBlock的终止符。如何修复BasicBlock以在UnreachableInst之前的指令处终止?

1 个答案:

答案 0 :(得分:1)

每个基本块必须以终止符结束。我认为删除无法访问指令的最直接的方法是用另一个终结符替换 - 例如,分支到下一个基本块,返回指令等。

在BasicBlockUtils.h中查看llvm::ReplaceInstWithInst,以便用一种方法替换另一条指令。