Llvm删除终止符指令



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

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

看看BasicBlockUtils.h中的llvm::ReplaceInstWithInst,可以找到用另一条指令替换一条指令的方便方法。

相关内容

  • 没有找到相关文章