Hi,<div><br></div><div>Thanks for suggestion :) </div><div>Since I am using llvm-3.1, I didn't find method "GetUnderlyingObjects "(available in llvm-3.2). </div><div>I was writing my own function to handle various memory operands. But I guess, this should help me out.</div>
<div><br></div><div>Thanks,</div><div>Rahul</div><div><br><br><div class="gmail_quote">On Thu, Mar 14, 2013 at 10:06 PM, Nadav Rotem <span dir="ltr"><<a href="mailto:nrotem@apple.com" target="_blank">nrotem@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">You can use the GetUnderlyingObjects function (notice the S at the end of the name) to collect zero or more underlying objects.  This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects. <div>
<br><div><div><div class="h5"><div>On Mar 14, 2013, at 4:15 AM, rahul <<a href="mailto:rahul3527@gmail.com" target="_blank">rahul3527@gmail.com</a>> wrote:</div><br></div></div><blockquote type="cite"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div><div class="h5">Hi,<div><br></div><div>I am writing a pass that works at machine level and runs as last pass in llc (just before converting llvm specific machine instructions into target specific instructions) </div>
<div>In this pass I am trying to get underlying object for memory operations. </div><div>It turns out that due to various optimizations on machine instructions, the memory operand in the operation is not always getelementptr (for e.g., it can be phi node/bitcast/inttoptr instruction)</div>
<div>Can someone suggest best way to get the underlying object??</div><div><br></div><div><div>-- </div>Regards,<br>Rahul Patil.</div><br></div></div><div class="im"><hr align="left" width="300">View this message in context:<span> </span><a href="http://llvm.1065342.n5.nabble.com/Get-underlying-object-for-Machine-level-memory-operation-tp55970.html" target="_blank">Get underlying object for Machine level memory operation</a><br>
Sent from the<span> </span><a href="http://llvm.1065342.n5.nabble.com/LLVM-Dev-f3.html" target="_blank">LLVM - Dev mailing list archive</a><span> </span>at<span> </span><a href="http://nabble.com/" target="_blank">Nabble.com</a>.<br>
</div>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a><span> </span>        <a href="http://llvm.cs.uiuc.edu/" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a></div></blockquote></div><br></div></div></blockquote></div><br><br clear="all"><div><br></div>
-- <br>Regards,<br>Rahul Patil.
</div>