<div dir="ltr">The type of an alloca is a pointer to the type of the allocated object. For instance:<br><br>This C++ source code:<br><br>  int i;<br>  float f;<br>  f1(i, f);<br><br>compiles to this LLVM IR:<br><br> %i = alloca i32, align 4<br>  %f = alloca float, align 4<br>  %0 = load i32, i32* %i, align 4<br>  %1 = load float, float* %f, align 4<br>  call void @_Z2f1if(i32 %0, float %1)<br><br>So you can see the type of an alloca of i32 is i32* and the type of an alloca of float is float*.<br><br>You can convert pointers to integers with a ptrtoint instruction. eg: %0 = ptrtoint i32* %i to i64</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 8, 2019 at 11:05 AM Avery Laird via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello,</div><div><br></div><div>Hopefully this is the correct place for this sort of question. I have been trying to do some simple instrumentation of LLVM IR, and I have been confused by the return type of alloca. When passing an AllocaInst as a parameter to a function call, the parameter type is i32**, which is not what I would expect. Really I would like the address of the allocated memory. What am I missing? And is it possible to represent the result of alloca as an integer? Thanks for any help.</div><div><br></div><div>Cheers,</div><div><br></div><div>Avery<br></div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>