<div dir="ltr"><div><div>I'd want to do some dataflow analysis for the specific structure, so I need to get the member name of the structure to record the condition while doing analysis.<br></div>I was working on AST to get such information right now, but I found it is too complicated. So I want to directly get the information from LLVM IR while doing dataflow analysis.<br></div><div>As for your advise, I have read the manual of GEP in <a href="http://llvm.org">llvm.org</a>,  and I could get the indexes in GEP instructions. So in next step, could I get some semantic information from the indexes I got in GEP instruction?<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-27 20:20 GMT+08:00 mats petersson <span dir="ltr"><<a href="mailto:mats@planetcatfish.com" target="_blank">mats@planetcatfish.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">You will need to find out the argument for the getElementPtr, and get the type of that, then use the index for the GEP to find what element it is in the struct. <br><br>Why do you want to do this at LLVM level, shouldn't AST be a better place to do this? [You haven't exactly said what it is you're trying to do, so it's hard to give specific advice, but knowing about structures and such seems more like something the C/AST level should deal with]<div><br></div><div>--</div><div>Mats</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On 25 December 2015 at 03:11, 周书林 via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div>I am working on my first llvm Pass to analyze some structure variables in source code, but in IR, there are only getelementptr to calculate the memory address to fetch the value of a specific member in the structure. For example, when I try to get the member  name of Structure S in statement "if(ss.aaaa == b)", where ss is a object of Structure S and b is an integer, <br><img alt="内嵌图片 2" src="cid:ii_151d71a3ea054f05" height="95" width="167"><br><img alt="内嵌图片 4" src="cid:ii_151d71aa7e4ced29" height="24" width="187"><br>I can only get the following IR structures, and the variable %aaaa1 is just a temporary name<br><img alt="内嵌图片 1" src="cid:ii_151d719f72d6ea8d" height="50" width="411"><br><br></div>So, the problem is, how could I get the member name of a structure in IR? more specific, how could I get the name "aaaa" while access to the "ss.aaaa"?<br><br></div>Thanks a lot.<br></div>
<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="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>