Zvonimir Rakamaric
2008-Apr-03 21:53 UTC
[LLVMdev] problem with using DSA for a side-effect analysis
Thanks guys! I was looking into ModRef before, but I don't think that's exactly what I need. ModRef API call getModRefInfo requires a Value to be passed to it. However, some memory location M (which is a <DSNode, offset> pair) visible to the caller can be modified in the callee without any Value in the caller actually pointing to that location. I also need to capture those... I would need a call similar to getModRefInfo, just where second parameter is not a Value, but a DSNodeHandle pointing to the memory location in the caller whose ModRef status I would like to find out. Do you maybe have anything similar to that? -- Zvonimir> The ModRef info is directly available through the alias analysis dsa > client, and certainly easier to use. > > Andrew > > On Thu, Apr 3, 2008 at 1:28 PM, Vikram S. Adve <vadve at cs.uiuc.edu> wrote: > > Andrew, there used to be some code to compute the ModRef behavior of > > functions using DS graphs. Does that code still exist in svn? What > > Zvonimir is asking is essentially that, although perhaps he needs it > > as DS nodes explicitly rather than via the generic queries in the > > AliasAnalysis interface. > > > > --Vikram > > http://www.cs.uiuc.edu/~vadve > > http://llvm.org/ > > > > > > > > > > > > On Apr 3, 2008, at 12:45 PM, Andrew Lenharth wrote: > > > > > On Thu, Apr 3, 2008 at 12:29 PM, Zvonimir Rakamaric <zrakamar at gmail.com > > > > wrote: > > >> Currently I am using DSGraph::computeNodeMapping to do the task, > > >> but I > > >> am not sure if that's the way to go.... > > > > > > I believe that is the correct function to use. > > > > > > Andrew
Vikram S. Adve
2008-Apr-04 04:31 UTC
[LLVMdev] problem with using DSA for a side-effect analysis
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. 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. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.org/ On Apr 3, 2008, at 4:53 PM, Zvonimir Rakamaric wrote:> Thanks guys! > > I was looking into ModRef before, but I don't think that's exactly > what I need. ModRef API call getModRefInfo requires a Value to be > passed to it. However, some memory location M (which is a <DSNode, > offset> pair) visible to the caller can be modified in the callee > without any Value in the caller actually pointing to that location. I > also need to capture those... > > I would need a call similar to getModRefInfo, just where second > parameter is not a Value, but a DSNodeHandle pointing to the memory > location in the caller whose ModRef status I would like to find out. > Do you maybe have anything similar to that? > > -- Zvonimir > > >> The ModRef info is directly available through the alias analysis dsa >> client, and certainly easier to use. >> >> Andrew >> >> On Thu, Apr 3, 2008 at 1:28 PM, Vikram S. Adve <vadve at cs.uiuc.edu> >> wrote: >>> Andrew, there used to be some code to compute the ModRef behavior of >>> functions using DS graphs. Does that code still exist in svn? >>> What >>> Zvonimir is asking is essentially that, although perhaps he needs it >>> as DS nodes explicitly rather than via the generic queries in the >>> AliasAnalysis interface. >>> >>> --Vikram >>> http://www.cs.uiuc.edu/~vadve >>> http://llvm.org/ >>> >>> >>> >>> >>> >>> On Apr 3, 2008, at 12:45 PM, Andrew Lenharth wrote: >>> >>>> On Thu, Apr 3, 2008 at 12:29 PM, Zvonimir Rakamaric <zrakamar at gmail.com >>>>> wrote: >>>>> Currently I am using DSGraph::computeNodeMapping to do the task, >>>>> but I >>>>> am not sure if that's the way to go.... >>>> >>>> I believe that is the correct function to use. >>>> >>>> Andrew > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080403/1305d022/attachment.html>
Andrew Lenharth
2008-Apr-04 09:38 UTC
[LLVMdev] problem with using DSA for a side-effect analysis
On Thu, Apr 3, 2008 at 4:53 PM, Zvonimir Rakamaric <zrakamar at gmail.com> wrote:> Thanks guys! > > I was looking into ModRef before, but I don't think that's exactly > what I need. ModRef API call getModRefInfo requires a Value to be > passed to it. However, some memory location M (which is a <DSNode, > offset> pair) visible to the caller can be modified in the callee > without any Value in the caller actually pointing to that location. I > also need to capture those... > > I would need a call similar to getModRefInfo, just where second > parameter is not a Value, but a DSNodeHandle pointing to the memory > location in the caller whose ModRef status I would like to find out. > Do you maybe have anything similar to that?I haven't looked at the dsaaa implementation for quite a while, but that would be the place to start. If the DSNodeHandle corrosponds to anything in the current function, you could just use that as a value, but it won't always. Eitherway, seeing how DSAaa does this would be the best code to start from. Andrew
Zvonimir Rakamaric
2008-Apr-04 15:04 UTC
[LLVMdev] problem with using DSA for a side-effect analysis
On Fri, Apr 4, 2008 at 2:38 AM, Andrew Lenharth <andrewl at lenharth.org> wrote:> On Thu, Apr 3, 2008 at 4:53 PM, Zvonimir Rakamaric <zrakamar at gmail.com> wrote: > > Thanks guys! > > > > I was looking into ModRef before, but I don't think that's exactly > > what I need. ModRef API call getModRefInfo requires a Value to be > > passed to it. However, some memory location M (which is a <DSNode, > > offset> pair) visible to the caller can be modified in the callee > > without any Value in the caller actually pointing to that location. I > > also need to capture those... > > > > I would need a call similar to getModRefInfo, just where second > > parameter is not a Value, but a DSNodeHandle pointing to the memory > > location in the caller whose ModRef status I would like to find out. > > Do you maybe have anything similar to that? > > I haven't looked at the dsaaa implementation for quite a while, but > that would be the place to start. If the DSNodeHandle corrosponds to > anything in the current function, you could just use that as a value, > but it won't always. Eitherway, seeing how DSAaa does this would be > the best code to start from.Thanks! I already had most of the code for it already written, staring at the DSAaa helped me to fix a couple of problems. It seems to be working perfectly now... Btw, apart from the difference I already mentioned, DSAaa modref is also not so good fit for me because it is not field-sensitive... -- Zvonimir
Reasonably Related Threads
- [LLVMdev] problem with using DSA for a side-effect analysis
- [LLVMdev] problem with using DSA for a side-effect analysis
- [LLVMdev] problem with using DSA for a side-effect analysis
- [LLVMdev] problem with using DSA for a side-effect analysis
- [LLVMdev] problem with using DSA for a side-effect analysis