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