[llvm-dev] How to get the arguments of a function call in LLVM?

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 19 09:28:03 PDT 2017


On 19 April 2017 at 09:05, Dipanjan Das via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> If I run the pass through `opt`, it produces the following
>
>     malloc : 0x3df3f40
>     i64 %0
>
> What does `0x3df3f40` represent?

getArgOperand returns a pointer to a Value object. You're printing
that pointer directly rather than calling its print method to get a
sensible representation.

> Instead of `164` and `512`, why does it produce `i64` and `%0`?

That's because you're iterating through the argument as it exists at
the function's definition/declaration rather than the callsite. You
should be using the CallInst's accessors rather than the Function's if
you want the arguments used for this particular call.

Cheers.

Tim.


More information about the llvm-dev mailing list