Как заменить инструкцию на значение? - PullRequest
0 голосов
/ 31 января 2019

Я пишу на 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).Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 31 января 2019

Требуемая функция: replaceAllUsesWith () .Найдите свой sub и замените все виды использования этой инструкции на.Готово.

...