search for: tddatastructur

Displaying 20 results from an estimated 22 matches for "tddatastructur".

Did you mean: tddatastructure
2002 Nov 03
2
[LLVMdev] getAnalysis()
I'm having trouble with using getAnalysis() to access the results of one pass from within another. I require the pass to be previously executed as follows: void MyPass::getAnalysisUsage(AnalysisUsage &Info) const { Info.addRequired<TDDataStructures>(); } Then I try to use it as follows: bool MyPass::doInitialization(Module &M) { TDDataStructures &dsgraph = getAnalysis<TDDataStructures>(); return false; } When I run my pass via opt, I get the following assertion error: Assertion failed: i != AnalysisImpls...
2002 Nov 21
2
[LLVMdev] get TopDown DSGraph
Dear LLVM, I was wondering if this is the right way to get TopDown DSGraph? TDDataStructures &TD = getAnalysis<TDDataStructures>(); F is some function DSGraph &dsg = TD.getDSGraph(F); I found out the DSGraph I got using this method is actually bottom up DSGraph, can you let me know why? Thanks, xiaodong
2002 Nov 21
1
[LLVMdev] get TopDown DSGraph
...1fc0 [shape=record,shape=Mrecord,label="{ void: HI\n}"]; Node0x100aebf90[ plaintext=circle, label =" %my"]; Node0x100aebf90 -> Node0x100ae1c40[arrowtail=tee,color=gray63]; If you look at it, you'll see each node has the InComplete Bit on. But when I use 'analyze -tddatastructure file.bc' I got the graph in which all the nodes don't have the bit on. So they are different. Could you tell me why the results from the analyze tool and from the dsg.dump() are different? Besides, each time I call the getAnaysis<TDDataStructure>(), it writes out some bu_funname.dot...
2015 May 15
2
[LLVMdev] DSA / poolalloc: incorrect callgraph for indirect call
...int (*fptr)(int, int), int arg1, int arg2) { return (*fptr)(arg1, arg2); } __attribute__((noinline)) static int foo() { return run_func(&f1, 1, 2); } int main(int argc, char *argv[]) { printf("Main: %p\n", &main); printf("Sum: %d\n", foo()); } Using the TDDataStructures, I would expect that the callgraph of above program shows that run_func can only call f1. However, it seems that DSA is falling back to an address-taken approach and tells us it can also call main. I attached the bitcode of above C program, as well as the LLVM pass that generates a callgraph. I&...
2011 Aug 11
0
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
...behavior for EQTD :). In short, EQTD (and CBU) are useful for program-transforming passes like pool allocation, but are _not_ good for alias analysis queries. If you switch to TD you'll get better alias-analysis information, and in this example the correct result. I changed both instances of EQTDDataStructures to TDDataStructures in your example code, and got the desired result (and confirmed that I get the results you report when using EQTD). Give that change a shot and let us know if you have any further questions/issues. FWIW at the moment DSA doesn't give good results for vtable-heavy code, m...
2011 Aug 11
2
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
Will Dietz wrote: > This is actually the expected behavior for EQTD :). Expected by you, maybe. :-D > If you switch to TD you'll get better alias-analysis information, and > in this example the correct result. OK, I have switched to TDDataStructures as well, and I am also seeing much better (for my purposes) results in simple tests. I'll keep poking at this some more and let you folks know if I hit any other surprises. There is no mention of TDDataStructures in "poolalloc/dsa-manual/manual.tex", which is why I did not cons...
2002 Nov 03
0
[LLVMdev] getAnalysis()
...ott Mikula wrote: > I'm having trouble with using getAnalysis() to access the results of one > pass from within another. I require the pass to be previously executed > as follows: > > void MyPass::getAnalysisUsage(AnalysisUsage &Info) const { > Info.addRequired<TDDataStructures>(); > } Is that the only line you have? There may be some trouble if you also include a pass that invalidates TDDS before your pass can get to it. Unfortunately we don't have good diagnostics for this case yet. > Then I try to use it as follows: > bool MyPass::doInitialization(...
2002 Nov 03
1
[LLVMdev] getAnalysis()
...#39;m having trouble with using getAnalysis() to access the results of one > > pass from within another. I require the pass to be previously executed > > as follows: > > > > void MyPass::getAnalysisUsage(AnalysisUsage &Info) const { > > Info.addRequired<TDDataStructures>(); > > } > > Is that the only line you have? There may be some trouble if you also > include a pass that invalidates TDDS before your pass can get to it. > Unfortunately we don't have good diagnostics for this case yet. > > > Then I try to use it as follows: &g...
2011 Aug 10
2
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
John Criswell wrote: > 1) I'll try out your example C++ code below and see if I can get the > same results that you do. However, I'm at a conference right now (Usenix > Security), so I don't know exactly when I'll get to it. Excellent. Thanks, John! > 2) DSA can get pessimistic results when dealing with external code (as > Andrew described). It is designed for
2002 Nov 21
0
[LLVMdev] get TopDown DSGraph
> I was wondering if this is the right way to get TopDown DSGraph? > TDDataStructures &TD = getAnalysis<TDDataStructures>(); > F is some function > DSGraph &dsg = TD.getDSGraph(F); Yes, that's the right way. > I found out the DSGraph I got using this method is actually bottom up > DSGraph, can you let me know why? Why do you think it's a BU gra...
2005 Feb 21
2
[LLVMdev] DSG Visualization
Hello, Is it possible to display the data structure graphs created by the Data Structure Analysis using a visualization tool? Thanks --------------------------------- Do you Yahoo!? Yahoo! Search presents - Jib Jab's 'Second Term' -------------- next part -------------- An HTML attachment was scrubbed... URL:
2005 Feb 21
0
[LLVMdev] DSG Visualization
...wrote: > Hello, > > Is it possible to display the data structure graphs created by the Data Structure Analysis using a visualization tool? yes. Just run one of these commands: analyze -datastructure x.bc -- local DSGs analyze -budatastructure x.bc -- BU DSGs analyze -tddatastructure x.bc -- TD DSGs These commands will output one "dot" file for each function in the program and a globals graph. You can use the dot program (search for graphviz) to render these in just about any format you want. -Chris -- http://nondot.org/sabre/ http://llvm.cs.uiuc.edu/
2006 Dec 01
1
[LLVMdev] DSGraph::computeCalleeCallerMapping failing
...le&)+0x23)[0x850b125] ../../../../../../old_obj/Debug/bin/opt(main+0x8d6)[0x843194a] /lib/tls/libc.so.6(__libc_start_main+0xf0)[0x9ea770] ../../../../../../old_obj/Debug/bin/opt(std::__throw_logic_error(char const*)+0x5d)[0x8430ee1] Aborted (core dumped) My code looks something like this: TDDataStructures &TDD = getAnalysis<TDDataStructures>(); for(unsigned int i=0;i<SCC.size();i++) // Go through the functions in the SCC { Function *fun = SCC[i]->getFunction(); if( fun == NULL || fun->isExternal() ) { MYWARN( true, "Encountered a null function...
2011 Aug 11
0
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
I wrote: > I'll keep poking at this some more and let you folks know if I hit any other surprises. Well, that didn't take long. :-) I have found two new surprises in DSCallGraph as built by TDDataStructures. Consider the following program, which is complete and self-contained and which has one simple indirect call site: volatile int unknown; static void red() { } static void blue() { } int main() { (unknown ? red : blue)(); return 0; } If I save this as "test.c", compile...
2007 Jul 10
1
[LLVMdev] A question about LLVM and pool allocation
HI guys. I'm trying to build the poolalloc on llvm-2.0 but there exist some errors. Can you tell me which version of llvm is known to make the poolalloc build and install successful? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070710/4ab5e155/attachment.html>
2008 Apr 23
0
[LLVMdev] how to dump DSA graph in gdb?
...to specify the analysis passes that you want run. For example, to see the local DSA results, do the following: opt -load <path to libLLVMDataStructure.so> -analyze -datastructure list.bc To get the Top-Down results, you would do: opt -load <path to libLLVMDataStructure.so> -analyze -tddatastructure list.bc > also the -analyze option in "-help" result shows that: > -analyze - Only perform analysis, no optimization > > did I misunderstand what your said, or my building problem? > > Also, you're aware that the -datastructure pa...
2002 Oct 30
1
[LLVMdev] help interpreting DSGraph->dump
> > First off, make sure you are sending the graphs through the "dot" > > utility. It turns them into a nice format that is much easier to > > visualize than the text format... :) > > hmmm... how do I get to use the magical "dot" utility? It sounds > pretty much like what I'm looking for, and I found it in >
2002 Nov 12
0
[LLVMdev] (no subject)
...----- > From: Vikram S. Adve [mailto:vadve at cs.uiuc.edu] > Sent: Tuesday, November 12, 2002 5:34 PM > To: 'Xiaodong Li' > Cc: llvmdev at cs.uiuc.edu > Subject: RE: [LLVMdev] (no subject) > > > Chris told you how to get results of any pass > (BUDataStructure, TDDataStructure, etc.). > > The CallGraph pass right now is very imprecise. Instead, the > best way to get CallGraph information is to do the following: > -- Get the TDGraph > -- Call tdGraph->getFunctionCalls(). This returns a > list of call site objects, which contain information abo...
2006 Apr 10
1
[LLVMdev] Debugging Output from DSA Analysis
Dear All, Is there a simple way to print the results of the various DSA analysis passes (similar to the ones found in the Pool Allocation papers)? I'm working with a modified DSA analysis pass and would like to know DSNodes it's creating on a particular function. Thanks in advance. -- John T. -- John T. Criswell Research Programmer University of Illinois at Urbana-Champaign
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