Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] DSGraph questions"
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
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 =
2002 Nov 10
0
[LLVMdev] DSGraph questions
I'll try to answer these because Chris is really busy this week.
> From: Xiaodong Li <xli3 at santoor.cs.uiuc.edu>
> Subject: [LLVMdev] DSGraph questions
> Sender: llvmdev-admin at cs.uiuc.edu
> Date: Sun, 10 Nov 2002 11:25:53 -0600 (CST)
>
> 1. What is the difference between DSNodeHandle and DSNode? What do the
> functions getLink() and getSize() do?
2002 Nov 08
2
[LLVMdev] Re: LLVMdev digest, Vol 1 #44 - 2 msgs
llvm,
What is the best way to implement a traversal of the DS graph, starting at
a scalar and processing all nodes to which the scalar allows access?
Currently the links vector is not public and there is no apparent way to
bound the getLink call (ie a getNumLinks call)....
Dave
2002 Nov 18
0
[LLVMdev] Fixed DSGraph iteration, depth first search, etc...
The following now works for me:
const DSNode *N1 = ...;
df_iterator<const DSNode*> X1 = df_begin(N1), XE1 = df_end(N1);
DSNode *N2 = ...;
df_iterator<DSNode*> X2 = df_begin(N2), XE2 = df_end(N2);
You need the following #includes:
#include "Support/DepthFirstIterator.h"
#include "llvm/Analysis/DSGraphTraits.h"
You need this patch:
2002 Nov 08
0
[LLVMdev] Iterating on the DSGraph...
> What is the best way to implement a traversal of the DS graph, starting at
> a scalar and processing all nodes to which the scalar allows access?
> Currently the links vector is not public and there is no apparent way to
> bound the getLink call (ie a getNumLinks call)....
Warning, untested code follows, but you should get the idea:
#include
2002 Nov 16
2
[LLVMdev] question
When I tried to compile the program, I got this error:
../../../include/llvm/Analysis/DSGraph.h: In member function `virtual bool
<unnamed>::GlobalMemLeakage::run(Module&)':
../../../include/llvm/Analysis/DSGraph.h:38: `void
DSGraph::operator=(const
DSGraph&)' is private
MemLeakage.cpp:87: within this context
gmake: *** [Debug/MemLeakage.o] Error 1
I don't
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
2006 Dec 01
1
[LLVMdev] DSGraph::computeCalleeCallerMapping failing
I was trying to call "DSGraph::computeCalleeCallerMapping" function on all caller-calle pair. But, in one case it gives an assertion failure. This is the error message I get.
Processing internal callee function rt_error
opt: /localhome/ssahoo2/llvm/src/lib/Analysis/DataStructure/DataStructure.cpp:2248: static void llvm::DSGraph::computeNodeMapping(const llvm::DSNodeHandle&, const
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?
2002 Nov 06
0
[LLVMdev] DSGraph implementation status update
Hi all DSGraph users...
This is a note to let you know that I just checked in a rather large
change to the data structure graph representation. Here are the bonuses
of the new representation:
1. Only the DSNode interface changed, mostly in implementation details, so
hopefully client code shouldn't be effected. As a metric, nothing had
to change in BottomUp or TopDownClosure.cpp for
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(
2002 Nov 16
5
[LLVMdev] question
Thanks Bill. One more question, when I use the DSNode iterator to
traverse a node's children. The return value of I.getNode() can only
be 'const DSNode *', I cannot use 'DSNode *' type. So as a result, I
always get error message like this:
MemLeakage.cpp:159: invalid conversion from `const DSNode*' to `DSNode*'
MemLeakage.cpp:159: initializing argument 1 of `void
2008 Apr 03
3
[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
2002 Nov 15
2
[LLVMdev] DSGraph question
Dear LLVM,
If I have a DSGraph dsg, I want to duplicate a DSgraph which is exactly
the same with dsg. How should I do that?
Should I use
DSGraph dsg2 = dsg;
or use some other methods?
Thanks,
xiaodong
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
2017 May 24
3
GraphTraits dereferencing
Hello,
I’m trying to port a project up to 4.0 and I’m seeing the following error:
In file included from /Users/jaredcarlson/Projects/llvm-4.0.0.src/include/llvm/ADT/StringRef.h:13:
/Users/jaredcarlson/Projects/llvm-4.0.0.src/include/llvm/ADT/STLExtras.h:139:13: error: no type named 'type' in 'std::__1::result_of<std::__1::pointer_to_unary_function<llvm::DSNode *, llvm::DSNode
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
2008 Apr 04
0
[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
2002 Nov 28
2
[LLVMdev] Breakage in CVS?
The following function produces a segv when the begin() is taken from
vmap, the ScalarMap...
bool StaticMemAnalysis::isSingleMalloc(DSGraph* theGraph,DSNode* theNode)
{
int count = 0;
std::map<Value*, DSNodeHandle>& vmap = theGraph->getScalarMap();
for (std::map<Value*, DSNodeHandle>::iterator i = vmap.begin(); i
!= vmap.end(); ++i) {
if(i->second.getNode() ==