如何检索在 LLVM 中函数调用期间传递的参数?

How to retrive the arguments passed during function call in LLVM?

我在llvm中有一个调用指令'call void @calculate_output(i32 %14), !dbg !141'。 我想从中检索值对象 %14。 每当我尝试时,我都会得到形式参数而不是实际参数。

如果您正在获取形式参数,则意味着您正在使用 Function*,而不是 CallInst*。你打电话给 call->getFunction() 了吗?

你需要的只是call->getArgOperand(0),见https://llvm.org/doxygen/classllvm_1_1CallBase.html#ab2caa29167597390ab2fc3cf30d70389