【问题标题】:Llvm Remove Terminator InstructionLlvm 移除终结者指令
【发布时间】:2013-08-20 13:56:19
【问题描述】:

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

【问题讨论】:

    标签: llvm terminator unreachable-statement


    【解决方案1】:

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

    查看 BasicBlockUtils.h 中的 llvm::ReplaceInstWithInst 以方便地用另一条指令替换一条指令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 2012-01-01
      • 2018-01-12
      • 2014-12-28
      相关资源
      最近更新 更多