0

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

4

1 回答 1

1

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

在 BasicBlockUtils.h 中查看llvm::ReplaceInstWithInst以方便的方式将一条指令替换为另一条指令。

于 2013-08-18T19:33:30.567 回答