Доступ к значению аргумента для вызова функции в LLVM

В моем LLVM IR есть несколько вызовов функций, которые выглядят так:

%2 = invoke i16 @"_ZN41_$LT$std..sync..mpsc..Sender$LT$T$GT$$GT$4send17h3c94bf47bc6c3500E"(%"std::sync::mpsc::Sender<weather::Weather>"* dereferenceable(16) %weather_sender, i8 %1)
      to label %bb4 unwind label %cleanup, !dbg !717

Я хочу статически проанализировать их, чтобы найти значение для последнего аргумента, %_6, Есть ли способ получить его стоимость? Я пытался получить доступ к аргументу напрямую, но это просто дает мне инструкцию, где аргумент загружается / выделяется. Итак, это:

if (InvokeInst* ii = dyn_cast<InvokeInst>(&instr)) {
    Value* v = ii->getArgOperand(ii->getNumArgOperands() - 1);
    v->dump();
}

просто дает мне %1 = load i8, i8* %_5, !dbg !717, инструкция загрузки, которая дает мне

0 ответов

Другие вопросы по тегам