[LLVMdev] DSnode type question
sabre at nondot.org
Tue Dec 3 13:03:01 PST 2002
> I was wondering if you had a chance to look at this problem. Could
> you let me know how to decide if this is a heap node in this case? It's
> important because my code depends on this information.
Thanks for reminding me, I forgot. I don't see any folded nodes for the
lists.c/test_list function. Furthermore, I checked out
DSNode::foldNodeCompletely, and it doesn't remove any flags. Can you give
me more details about when you see this problem?
> On Thu, 21 Nov 2002, Chris Lattner wrote:
> > > When I use analyze to construct the DSGraph for the lists.c program in
> > > test/Programs/SingleSource/Shootout directory. I found out the heap node
> > > in the function test_list() all have type FOLDED:R. I was wondering why
> > > it's not heapnode anymore? My pass need to use this type information to
> > > determine whether a node is heap node. Is there any way I can know this is
> > > a heap node in this case?
> > Folded nodes are nodes where the type information in LLVM isn't good
> > enough to distinguish fields, therefore we need to fold the nodes to be
> > conservatively correct, even though doing so loses field sensitivity.
> > Pointer/Alias analysis is an undecidable problem, so all [sound] analyses
> > must have some way to represent conservativism. This is one of the ways
> > that the DSGraphs do it. In this case, your pass should do something
> > conservative.
> > Despite this, we should not be tossing away the type of memory object it
> > is (ie heap allocation). I will look into this tommorow to see what is
> > going on.
> > -Chris
> > --
> > http://llvm.cs.uiuc.edu/
> > http://www.nondot.org/~sabre/Projects/
More information about the llvm-dev