Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] Fixed DSGraph iteration, depth first search, etc..."
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 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 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 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 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),
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
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
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
2002 Nov 24
0
[LLVMdev] DSGraph::mergeInGraph usage?
I've been trying to merge DSGraphs from different Functions, but i'm
not going anywhere. For a Function F and DSGraph G, I tried this
(assumming no SCC in the callgraph):
vector<DSCallSite> CSV = G->getAuxFunctionCalls();
for (vector<DSCallSite>::iterator I = CSV.begin(), E = CSV.end();
I != E; I++) {
Value *V = I->getCallInst().getOperand(0);
Function &SF
2002 Nov 15
0
[LLVMdev] DSGraph question
> 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?
Yes, use the copy constructor. If you want mapping between the original
and the new graph's nodes, you can also use this form of the copy ctor:
DSGraph(const DSGraph &DSG, std::map<const DSNode*,
2005 Mar 21
1
[LLVMdev] LLVM CVS Build Broken + one line fix
The current LLVM CVS HEAD does not build for me (RedHat 9). The issue
is a one line fix. The file "include/llvm/ADT/EquivalenceClasses.h"
needs to include <stdint.h> in order to get the typedef for "intptr_t."
If anyone wants me to make a patch for this, let me know. The build
error that this solves is:
llvm[3]: Compiling DataStructure.cpp for Debug build
In file
2004 Dec 03
0
[LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
On Fri, 3 Dec 2004, Reid Spencer wrote:
> Could someone please apply this patch to the Win32 support so that
> Morten and Jeff can handle the recent changes? I can't do it because
> I"m on the road with only email access.
I'd be happy to do it. Can someone send me the patch as an attachment
off-list?
-Chris
> > <Tool
> >
2009 Jun 15
3
[LLVMdev] Some df_iterator and po_iterator issues
Hi @llvm,
below is a copy of a message I sent to clang a hour before. I guess it's
more appropriate here.
--snip--
While trying to eleminate as much std::tr1::function as possible I
stumbled over a design flaw in llvm::df_iterator.
Consider the following code:
void for_all_stmts(Stmt* S, const std::tr1::function<void(Stmt*)>& fn)
{
if (S)
{
fn(S);
for
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 Jun 27
0
[LLVMdev] Patch for llvm::DepthFirstIterator.h and llvm::PostOrderIterator.h
Hi Olaf,
This patch looks good to me. I just have a few minor comments:
> + inline df_iterator() { CurrentTopNode = 0; /* End is when stack
is empty */ }
Should the comment here be updated to say that the End
is reached when the stack is empty and when CurrentTopNode
is null?
> + inline void toNext()
> + {
LLVM style puts the open brace on the same line as the function name.
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
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
You might want to have a look at PoolAllocate.h.
Per function, a PA::FuncInfo structure keeps track of all DSNodes that
should be pool allocated. ArgNodes contains pool arguments, NodesToPA
contains nodes that are locally pool allocated and thus initialized
using poolinit.
PoolDescriptors contains a mapping from DSNodes to pool descriptors, and
you could easily invert this mapping.
Finding a
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
2002 Nov 16
0
[LLVMdev] question
Also sprach Xiaodong Li:
} 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:
2010 Dec 13
0
[LLVMdev] How can I determine safely if a CallSite is "live" in a DSGraphs context
Hi,
I'm using DSAnalysis in order to get some points to information. In my particular case for a CallSite.
Everything is working well except for some special cases. Consider the following example code:
// ======================
void m(short *s) {
return;
}
int main() {
m(0);
}
// ======================
The call to method m in the main method is translated to