如何用值替换指令?
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++ 编写。假设我有
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
并将该指令的所有用途替换为。完成。