Может ли кто-нибудь помочь мне в увеличении значения переменной, предположительно на 5 в LLVM IR, с помощью пропуска LLVM. Это моя инструкция подарок, который я хочу, чтобы увеличитьПриращение переменной в LLVM IR
%1 = load i32* %k, align 4
%inc = add nsw i32 %1, 1
store i32 %inc, i32* %k, align 4
вместо 1 в% вкл (добавить) инструкцию, как заменить его на 5.
Я попытался идентифицировать Команда загрузки по
if(LoadInst *ld=dyn_cast<LoadInst>instruction)
, а затем
Value *Five = ConstantInt::get(Type::getInt32Ty(context), 5);
, а затем заменить добавить проинструктировали ion по моей новой инструкции
Instruction *in=BinaryOperator::Create(Instruction::Add,ld,Five,"inc",some instruction);
Я попробовал лить инструкцию ld в значение, но это не сработало.
Спасибо за replying.But не является правильным, как нам нужно значение L. – techcomp
Как насчет I-> setOperand (operandNo, Value *)?. Я использовал что-то подобное не так давно, и это сработало, надеюсь, будет работать и для вас тоже –
О, спасибо. Это сработало!! – techcomp