<div dir="ltr"><div>Previously, I started from the load/store instructions, and tried to find the original definitions by going through defs recursively. And I met the problem described in last mail.<br>It seems that I have to do things reversely. That is to start from definitions of pointers/memory objects and check their uses recursively. I don't know whether this is a good idea.<br></div><div>Or is there any other good suggestion?<br><br></div><div>Thanks!<br>Ruiling<br><br></div><div><div><div><div class="gmail_extra"><div class="gmail_quote">2014-11-19 16:54 GMT+08:00 Ruiling Song <span dir="ltr"><<a href="mailto:ruiling.song83@gmail.com" target="_blank">ruiling.song83@gmail.com</a>></span>:<br><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><div><div><div>Hi,<br><br></div></div>I want to get the information where the address of load/store comes from, <br>like below load instruction, %152 may come from a getelementpr, or comes from some gep+ptrtoint+add+inttoptr... instructions. what's the recommended way to find the original memory pointer?<br><br>  %153 = load <2 x i16> addrspace(1)* %152, align 2<br><br></div>going through the use-def chain seems not easy, because the 'add' operation contains two operands, one come from a pointer, the other is an integer offset. I could not know which is at operand 0 and which is at operand 1.<br><br></div>Thanks!<span class=""><font color="#888888"><br>Ruiling<br><div><div><br></div></div></font></span></div>
</blockquote></div><br></div></div></div></div></div>