我想删除一个UnreachableInst,因为之前的转换使其可以访问。但是,调用eraseFromParent()会给我一个格式错误的BasicBlock,因为UnreachableInst是其BasicBlock的终止符。如何修复BasicBlock以在UnreachableInst之前的指令处终止?
答案 0 :(得分:1)
每个基本块必须以终止符结束。我认为删除无法访问指令的最直接的方法是用另一个终结符替换 - 例如,分支到下一个基本块,返回指令等。
在BasicBlockUtils.h中查看llvm::ReplaceInstWithInst
,以便用一种方法替换另一条指令。