Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes"
2009 Aug 07
2
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
Andrew Lenharth wrote:
> On Fri, Aug 7, 2009 at 4:45 PM, Patrick Alexander
> Simmons<simmon12 at cs.uiuc.edu> wrote:
>
>> I'm iterating over all LoadInst and StoreInst-type Instructions in a
>> Function, and getNodeForValue() is sometimes returning NULL. Why is
>> this happening? Shouldn't every load from or store to memory correspond
>> to some
2009 Aug 07
0
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
On Fri, Aug 7, 2009 at 4:45 PM, Patrick Alexander
Simmons<simmon12 at cs.uiuc.edu> wrote:
> I'm iterating over all LoadInst and StoreInst-type Instructions in a
> Function, and getNodeForValue() is sometimes returning NULL. Why is
> this happening? Shouldn't every load from or store to memory correspond
> to some DSNode?
Not if the pointer is null or the pointer
2009 Aug 07
0
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
Patrick Alexander Simmons wrote:
> Andrew Lenharth wrote:
>
>> On Fri, Aug 7, 2009 at 4:45 PM, Patrick Alexander
>> Simmons<simmon12 at cs.uiuc.edu> wrote:
>>
>>
>>> I'm iterating over all LoadInst and StoreInst-type Instructions in a
>>> Function, and getNodeForValue() is sometimes returning NULL. Why is
>>> this
2009 Aug 07
2
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
John Criswell wrote:
> You can sometimes get NULL DSNodes if a previously-run transform pass
> adds pointers to the program but doesn't update DSA while claiming to
> preserve it. The pool allocation pass, for example, does this: it
> claims to preserve the DSA results (when used for SAFECode) but doesn't
> properly update the DSGraph when it adds pool handles. Therefore,
2009 Aug 07
0
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
Patrick Alexander Simmons wrote:
> John Criswell wrote:
>
>> You can sometimes get NULL DSNodes if a previously-run transform pass
>> adds pointers to the program but doesn't update DSA while claiming to
>> preserve it. The pool allocation pass, for example, does this: it
>> claims to preserve the DSA results (when used for SAFECode) but doesn't
>>
2010 Mar 16
4
[LLVMdev] Getting the DSNode from a Pool Descriptor?
I figure (hopefully correctly) that I can iterate over all pool
descriptors in a program by iterating over all users of poolinit and
looking at the first argument. However, once I have a pool descriptor,
I need to get its corresponding DSNode in the function in which it is
complete (or in the global graph if it is a global). How do I do this?
Thanks,
--Patrick
2010 Mar 19
3
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Thanks for all your help so far.
My problem is that what I have are the pool descriptors, which I by
traversing the uses of poolinit and accessing the first argument of each
call. I need to find the DSNode (in the original function) to which
this pool descriptor corresponds. The rub is that this pool descriptor
of course does not exist except in the clone.
If I call getFuncInfo(), I get a
2010 Mar 19
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Hi Patrick,
That's right. DSNodes are coupled to the original function. For function clones, you first need
to get the original function, and then use the DSNode from that function. FuncInfo
contains the information if a function is a clone and what the original function is.
If you want to find the corresponding DSNode for some instruction, you must call
PA::FuncInfo::MapValueToOriginal(
2010 Mar 17
1
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Depending on the value of dsa_pass_to_use, either EquivBUDataStructures
or EQTDDataStructures is used. In the case that the top-down DSA is
used, information is pushed down to nodes in callees. However,
if bottom-up DSA is used, information has only been merged upwards and
the nodes are not necessarily equivalent.
Harmen
Andrew Lenharth wrote:
> On Tue, Mar 16, 2010 at 3:46 PM, Patrick
2010 Mar 19
3
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Harmen, your suggestion of inverting the mapping almost worked (and
Andrew was correct that the function I need is the same as the one in
which poolinit appears). Unfortunately, it appears that this mapping
only considers the original function and not any of its clones. Since
the pool descriptor in question may very well only exist in a clone, I
can't use this. Is there another way?
2010 Mar 17
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
On Tue, Mar 16, 2010 at 3:46 PM, Patrick Alexander Simmons
<simmon12 at cs.uiuc.edu> wrote:
> I figure (hopefully correctly) that I can iterate over all pool
> descriptors in a program by iterating over all users of poolinit and
> looking at the first argument. However, once I have a pool descriptor,
> I need to get its corresponding DSNode in the function in which it is
>
2002 Dec 06
2
[LLVMdev] DSNode Question
LLVM,
I am trying to equate two dsnodes across call boundries. On the Caller
side we have an operand of form:
sbyte * getelementptr ([20 x sbyte]* %.LC0, long 0, long 0)
using getNodeForValue() yields a NULL pointer.
On the Callee, the parameter is of form:
sbyte * S
and getNodeForValue works fine. Is there something special that must be
done to access DNodes accessed using GEP?
Thanks,
2002 Nov 20
2
[LLVMdev] getScalarMap
> ......
> DSGraph* DSG = getAnalysis<BUDataStructures>().getDSGraph( F );
> std::map< Value*, DSNodeHandle> scalarmap = DSG->getScalarMap();
> ......
>
> The scalarmap is always empty. I printed the size of the map which came
> out to be zero always. But the getNodeForValue works correctly for the
> same DSG, which means that the scalarmap cannot be
2002 Nov 10
3
[LLVMdev] DSGraph questions
1. What is the difference between DSNodeHandle and DSNode? What do the
functions getLink() and getSize() do?
2. In the previous email, you mentioned that we can use
DSNode::getPointerSize() to get the number of links, But I checked the
doxygen documentation, there is no such member for DSNode.
3. Previously I use the following code:
for( df_iterator<DSNode*> I = df_begin(pnode),
2010 Mar 19
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Patrick Simmons wrote:
> Thanks for all your help so far.
>
> My problem is that what I have are the pool descriptors, which I by
> traversing the uses of poolinit and accessing the first argument of each
> call. I need to find the DSNode (in the original function) to which
> this pool descriptor corresponds. The rub is that this pool descriptor
> of course does not
2009 Aug 28
1
[LLVMdev] DSNodes for main() neither complete nor global?
Hi,
I'm noticing that there are some DSNodes in main() that are neither
complete nor global. Specifically, a heap DSNode that is used but not
free()d in main() is not marked complete. This is not the only case I'm
noticing, but it's the only case I'm noticing for nodes that are
actually used by instructions in the function.
Is this expected behavior? If so, is there an
2002 Nov 11
1
[LLVMdev] about getNodeForValue()
I have a question about the getNodeForValue() function. If I have the
following code:
struct a *p;
p = malloc( sizeof(struct a));
If I call DSGraph->getNodeForValue(p).getNode(). Will the returned Node
be p node or the actual memory location node?
Thanks,
xiaodong
2002 Nov 11
1
[LLVMdev] DSGraph questions
Dear Prof. Adve,
I recently checked out the llvm using
cvs update
command under the llvm directory. But when I went to see the DSNode.h,
there is no getPointerSize function. I checked the doxygen tree, it's
there. So that means I didn't update my cvs tree correctly. Could you let
me know how to update my CVS tree? Or there is a problem at somewhere
else?
Thanks,
xiaodong
On Sun, 10 Nov
2010 Dec 13
1
[LLVMdev] How can I determine safely if a CallSite is "live" in a DSGraphs context
Hi,
I believe shouldHaveNodeForValue() should return false for
ConstantPointerNullValue.
Fixed in r121707.
Arushi
On Mon, Dec 13, 2010 at 12:10 PM, Kevin Streit
<kevin.streit at googlemail.com>wrote:
> I'm using BUDataStructures... But I tried LocalDatastructures and it didn't
> work either...
> On Dec 13, 2010 6:52 PM, "Arushi Aggarwal" <arushi987 at
2002 Nov 08
1
[LLVMdev] Iterating on the DSGraph... (fwd)
I use the following code to do the depth first search on the DSGraph. And
I always got this error message. Couldn't figure out what's wrong. Could
you please let me know? Besides, I really have no idea about what those
functions do. Is there any documentation about DSGraph functions besides
the pool allocation paper?
Thanks,
xiaodong
Code:
for( df_iterator<DSNode*> I =