如何将指令替换为值
How do I replace an instruction with a value?
我正在用C++写作。说我有
define void @ha(i32) #0 {
%2 = add nsw i32 %0, 1
%3 = sub nsw i32 %2, 1
ret void
}
我想替换
%3 = sub nsw i32 %2, 1
跟
%3 = %0
我试过了
inst_iter->replaceAllUsesWith(val);
inst_iter->eraseFromParent();
和 ReplaceInstWithValue(inst_iter->getParent()->getInstList(), inst_iter, val);
可以理解的是,第一个不起作用,因为它没有另一个引用;对于第二个,它只是删除指令。我也找不到合适的函数(而且我没有包括 IRBuilder)。任何帮助不胜感激,谢谢!
你想要的函数是 replaceAllUsesWith()。找到您的sub
并将该指令的所有用法替换为。做。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 模板参数替换失败,并且未完成隐式转换
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 如何用转义符替换字符串中的所有特殊字符
- C++:对不存在的命名空间使用命名空间指令
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 函数名是c中该函数的第一条指令的地址吗
- 在一个读写器队列中,我可以用volatile替换原子吗
- 用符号版本替换对函数的所有调用
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 替换基于地图的所有引用
- 错误:无效的预处理指令 #i 的意思是 #if?
- 按平均值替换数组中的元素
- 组装指令中乘法的下部和上部是什么
- 如何将指令替换为值
- 是否有一种方法可以将变量列表传递给#Define指令,并导致其通过文字值替换字符串值
- 为什么没有替换预处理器指令
- #定义具有多个替换项的指令
- 替换LLVM IR中的指令
- 在llvm中用Undef值替换所有要删除的指令