我希望将IR中的某些CallInst
替换为ConstantInt
值。在我的转换过程中,我已经能够识别出我要替换的CallInst
这些,并且我创建了我想要替换它们的ConstantInt
。
但是,当我尝试使用llvm::Value::replaceAllUsesWith(Value* V)
进行替换时,我收到一个运行时错误,指出Value
我要替换CallInst
与{0}的类型不同CallInst
(这是有道理的)。
我的替代解决方案是使用添加常量整数为零的添加指令替换CallInst
。但是,我似乎无法找到如何在转换传递中创建添加指令对象。我知道IRBuilder
有一个CreateAdd
方法,但我想创建一个独立的指令,而不是一个新的基本块。
答案 0 :(得分:0)