簡體   English   中英

如何用值替換指令?

[英]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並替換為該指令的所有用法。 完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM