<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">What I was hoping is that the internal implementation of the ModRef API in DSAA has that kind of information.  It needs to do exactly what you described with computeNodeMapping to implement the AliasAnalysis interface.<div><br class="webkit-block-placeholder"></div><div>Andrew, my question was whether the ModRef info is computed by the -dsaa implementation.  If so, that code might be reusable (either directly, by exposing it through a separate interface) or indirectly (by duplicating) for what Zvonimir wants.<br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="font-family: Helvetica; "><br style="font-family: Helvetica; "></div><div><font class="Apple-style-span" face="Arial" size="3"><span class="Apple-style-span" style="font-size: 12px; ">--Vikram</span></font></div><div><font class="Apple-style-span" face="Arial" size="3"><span class="Apple-style-span" style="font-size: 12px; "><i><a href="http://www.cs.uiuc.edu/~vadve">http://www.cs.uiuc.edu/~vadve</a></i></span></font></div><div><font class="Apple-style-span" face="Arial" size="3"><span class="Apple-style-span" style="font-size: 12px; "><i><a href="http://llvm.org/">http://llvm.org/</a></i></span></font></div><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline"></div></span></div></span></div></span> </div><br><div><div>On Apr 3, 2008, at 4:53 PM, Zvonimir Rakamaric wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Thanks guys!<br><br>I was looking into ModRef before, but I don't think that's exactly<br>what I need. ModRef API call getModRefInfo requires a Value to be<br>passed to it. However, some memory location M (which is a <DSNode,<br>offset> pair) visible to the caller can be modified in the callee<br>without any Value in the caller actually pointing to that location. I<br>also need to capture those...<br><br>I would need a call similar to getModRefInfo, just where second<br>parameter is not a Value, but a DSNodeHandle pointing to the memory<br>location in the caller whose ModRef status I would like to find out.<br>Do you maybe have anything similar to that?<br><br>-- Zvonimir<br><br><br><blockquote type="cite"> The ModRef info is directly available through the alias analysis dsa<br></blockquote><blockquote type="cite"> client, and certainly easier to use.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> Andrew<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> On Thu, Apr 3, 2008 at 1:28 PM, Vikram S. Adve <<a href="mailto:vadve@cs.uiuc.edu">vadve@cs.uiuc.edu</a>> wrote:<br></blockquote><blockquote type="cite"><blockquote type="cite">Andrew, there used to be some code to compute the ModRef behavior of<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> functions using DS graphs.  Does that code  still exist in svn?  What<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> Zvonimir is asking is essentially that, although perhaps he needs it<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> as DS nodes explicitly rather than via the generic queries in the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> AliasAnalysis interface.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> --Vikram<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> <a href="http://www.cs.uiuc.edu/~vadve">http://www.cs.uiuc.edu/~vadve</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> <a href="http://llvm.org/">http://llvm.org/</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> On Apr 3, 2008, at 12:45 PM, Andrew Lenharth wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On Thu, Apr 3, 2008 at 12:29 PM, Zvonimir Rakamaric <<a href="mailto:zrakamar@gmail.com">zrakamar@gmail.com</a><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">wrote:<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Currently I am using DSGraph::computeNodeMapping to do the task,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">but I<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">am not sure if that's the way to go....<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I believe that is the correct function to use.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Andrew<br></blockquote></blockquote></blockquote>_______________________________________________<br>LLVM Developers mailing list<br>LLVMdev@cs.uiuc.edu         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></blockquote></div><br></div></body></html>