Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] Shouldn't need a "Module Graph""
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 Dec 01
0
[LLVMdev] Shouldn't need a "Module Graph"
Thanks for the tip, but what do you mean by "DSGraphs may be different
shapes?
On Sun, 1 Dec 2002, David Crowe wrote:
> The way we are doing it, per Vikram's recommendation, is to provide a
> mapping between the callers nodes and the callees nodes at the time of the
> call. Given that the only way they can communicate is through the
> parameters, globals, and return node,
2002 Dec 06
1
[LLVMdev] WRT: function pointers + DSG
LLVM,
What do I pass into the DSG in order to access the globals vector of
functions that a function pointer may be calling. The code:
CallInst *calli = dynamic_cast<CallInst*>(*i);
std::vector<GlobalValue*> funcVect =
theGraph.getNodeForValue(calli->getCalledFunction()).getNode()->getGlobals();
Doesn't appear to work... getCalledFunction() returns 0
Dave
On Fri, 6 Dec
2002 Nov 29
2
[LLVMdev] Fake Exit node
Is there a facility with which we may automagically create a "fake" exit
node, one that is the target of all BasicBlocks ending in return. This
would be very helpful to IP dataflow analysis...
Dave
2002 Nov 29
2
[LLVMdev] Fake Exit node
On Fri, 29 Nov 2002, Anand Shukla wrote:
> There is a pass "UnifyFunctionExitNodes()" (you can add it to AnalysisUsage
> of your pass) that does the trick.
Yup, just like Anand says, this pass will make it so that there is at most
one exit node from the function, which you can use for your analysis (it
will even tell you which BB that is too). Note that a function may _not_
have
2013 Mar 04
0
[LLVMdev] Unexpected DSAnalysis behavior
On 3/4/13 8:05 AM, Kevin Streit wrote:
> Hi,
>
> during the hunt for a bug causing strange behavior of our automatic
> parallelization framework,
> I found some, at least for me, unexpected behavior of the
> DataStructureAnalysis in Poolalloc.
>
> Consider the following simplified program:
>
> ====================
> int ARR[4] = {1, 2, 3, 4};
>
> int a(int
2002 Nov 24
4
[LLVMdev] globals in DS graph
I have some questions regarding how globals are represented in DS graph.
Specifically, I wrote the following simple program:
List *g;
void alloc_func(){
g = ( List* ) malloc( sizeof( List ) );
}
void free_func(){
free( g );
}
int main(){
alloc_func();
free_func();
}
I noticed that the DSnode for g in alloc_func is different from that of
free_func and NEITHER of them had GlobalNode
2002 Nov 20
2
[LLVMdev] getScalarMap
> I tried to used the getScalarMap function of the DSGraph to get the nodes
> that the scalars point to in a function. But the getScalarMap returns a
> null map always. Is there any problem in the getScalarMap function or is
> there any "protocol" to be followed while using the function?
DSGraph::getScalarMap returns a reference to the map, so this cannot be
null. Do you
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 29
0
[LLVMdev] Fake Exit node
There is a pass "UnifyFunctionExitNodes()" (you can add it to AnalysisUsage
of your pass) that does the trick.
-anand
----- Original Message -----
From: "David Crowe" <dcrowe at tremor.crhc.uiuc.edu>
To: <llvmdev at cs.uiuc.edu>
Sent: Friday, November 29, 2002 4:58 PM
Subject: [LLVMdev] Fake Exit node
> Is there a facility with which we may automagically
2002 Nov 30
0
[LLVMdev] Fake Exit node
How do I get this pass to work within my own ModulePass?
I get this error:
Running getAnalysisUsage()
Assertion failed: 0 && "Pass available but not found! " "Perhaps this is a
module pass requiring a function pass?", file PassManagerT.h, line 395
Abort
Thanks,
Dave
On Fri, 29 Nov 2002, Chris Lattner wrote:
> On Fri, 29 Nov 2002, Anand Shukla wrote:
>
>
2013 Mar 04
2
[LLVMdev] Unexpected DSAnalysis behavior
Hi,
during the hunt for a bug causing strange behavior of our automatic parallelization framework,
I found some, at least for me, unexpected behavior of the DataStructureAnalysis in Poolalloc.
Consider the following simplified program:
====================
int ARR[4] = {1, 2, 3, 4};
int a(int pos) {
return ARR[pos];
}
int sum(int op_a, int op_b) {
return a(op_a) + a(op_b);
}
int
2002 Dec 02
1
[LLVMdev] DSnode type question
Hi, Chris,
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,
Jerry
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
2003 Sep 10
1
[LLVMdev] cvs probs
cvs co llvm
...
cd llvm; ./configure --with-llvmgccdir=<llvmgccdir>; make
...
Compiling llvmAsmParser.cpp
Linking /home/dcrowe/llvm/llvmcvs/llvm/lib/Debug/asmparser.o
make[2]: Leaving directory
`/home/dcrowe/llvm/llvmcvs/llvm/lib/AsmParser'
make[2]: Entering directory
`/home/dcrowe/llvm/llvmcvs/llvm/lib/Bytecode'
make[2]: *** No rule to make target `all'. Stop.
make[2]:
2002 Nov 12
2
[LLVMdev] (no subject)
Dear LLVM,
I need to do interprocedural analysis for my project. I was wondering if
you can tell me how to create Bottom Up DSGraph and Call Graph in the
program. I know
DSGraph *dsg = new DSGraph( F )
can create a DSGraph, but looks like that's only local DSGraph.
I also need to know how to create the call graph for the whole module in
the program.
Thanks,
xiaodong
2015 Dec 28
3
Interpreting DSCallGraph results
Any suggestions for how to interpret DSCallGraph's output for the following?
I'm trying to use DSCallGraph to get a conservative estimate of a
whole-program SCC call graph. I wanted to see how it handles real
call-graph cycles involving functions both internal and external to the
module. So I made a test program with the following actual call graph,
using the standard library's
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
2002 Nov 21
2
[LLVMdev] DSnode type question
Dear LLVM,
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
2002 Nov 20
3
[LLVMdev] getScalarMap
> We tried that too...but still it returns an empty map.
I'm not sure what's going on then. :) I think that Vikram is planning to
update CVS soon, you might try that, as there has been significant
updates. I'm not sure why getNodeForValue would work for you but
getScalarMap doesn't... getNodeForValue USES the scalar map! :)
> We also saw that Scalar Type has been
2011 Jun 22
0
[LLVMdev] Memory dependence analysis
On 6/22/11 5:34 AM, Andreas Wilhelm wrote:
> Hello,
>
> I'm looking for a way to identify dependencies of
> function-pairs (memory-dependency, control-dependency...) in order to
> parallelize them.
> For aliasing problems I use the DataStructureAnalysis.
I'm assuming that this is the DSA analysis in the poolalloc module. Be
forewarned that:
1) DSA works with LLVM