【发布时间】:2016-01-19 04:26:09
【问题描述】:
我想用 ConstantInt 值替换 IR 中的某些 CallInst。在我的转换过程中,我已经能够识别我想要替换的这些CallInst,并且我已经创建了我想要替换它们的ConstantInt。
但是,当我尝试使用 llvm::Value::replaceAllUsesWith(Value* V) 进行替换时,我收到一个运行时错误,提示我想要替换 CallInst 的 Value 与 CallInst 的类型不同(有道理)。
我的替代解决方案是将CallInst 替换为将常量整数添加为零的添加指令。但是,我似乎不知道如何在我的转换过程中创建添加指令对象。我知道IRBuilder 有一个CreateAdd 方法,但我想创建一个独立的指令,而不是一个新的基本块。
【问题讨论】:
标签: llvm