Displaying 3 results from an estimated 3 matches for "mergeingraph".
2002 Nov 24
0
[LLVMdev] DSGraph::mergeInGraph usage?
...CSV = G->getAuxFunctionCalls();
for (vector<DSCallSite>::iterator I = CSV.begin(), E = CSV.end();
I != E; I++) {
Value *V = I->getCallInst().getOperand(0);
Function &SF = cast<Function>(*V);
if (!SF.isExternal()) {
DSGraph *SFG = new DSGraph(SF, GG);
G->mergeInGraph(*I, *SFG, 0);
}
}
but the resulting graph has no new merged DSNodes, even though in my
test case there is a DSNode pointed by the CallInst in F and another
DSNode in G that is returned to F.
Any ideas on what I'm doing wrong?
nicolas
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 30
1
[LLVMdev] How to get a Module DSGraph?
...I tried
- getting the DSGraph for each function, and copying the nodes to a
Module graph. But since there are no nodehandles, apparently there is
no merging of nodes.
- modifying BUDataStructure Pass so that it will not execute
removeDeadNodes() or removeTriviallyDeadNodes().
- couldn't get mergeInGraph() to work, but tried.
My main interest is in situations like
void *M(int size) {
return malloc(size);
}
void F() {
void *p = M(....);
}
where I can identify that %p and the object returned by M() are the
same.
nicolas