search for: eqtddatastructures

Displaying 20 results from an estimated 21 matches for "eqtddatastructures".

2011 Aug 09
2
[LLVMdev] EQTDDataStructures omits obvious, direct callee from DSCallGraph
I am using EQTDDataStructures (from the poolalloc project) to resolve indirect function calls to over-approximated sets of possible callees. Unfortunately I find that it yields incorrect results even on a very simple test input. My LLVM and poolalloc sources are Subversion trunk checkouts, no more than a day older than the...
2011 Aug 09
0
[LLVMdev] EQTDDataStructures omits obvious, direct callee from DSCallGraph
On Tue, Aug 9, 2011 at 6:19 PM, Ben Liblit <liblit at cs.wisc.edu> wrote: > I am using EQTDDataStructures (from the poolalloc project) to resolve > indirect function calls to over-approximated sets of possible callees. If I remember correctly, it only tries to resolve indirect calls. The analysis doesn't track direct calls because you can do it just as well yourself. Andrew > Unfortunatel...
2011 Aug 11
0
[LLVMdev] EQTDDataStructures omits obvious, direct callee from DSCallGraph
On Tue, Aug 9, 2011 at 10:45 PM, Ben Liblit <liblit at cs.wisc.edu> wrote: > Andrew Lenharth wrote: >> If I remember correctly, it only tries to resolve indirect calls.  The >> analysis doesn't track direct calls because you can do it just as well >> yourself. > > DSCallGraph::callee_begin() and DSCallGraph::callee_end() cooperate to > iterate over an empty
2011 Aug 10
2
[LLVMdev] EQTDDataStructures omits obvious, direct callee from DSCallGraph
Andrew Lenharth wrote: > If I remember correctly, it only tries to resolve indirect calls. The > analysis doesn't track direct calls because you can do it just as well > yourself. DSCallGraph::callee_begin() and DSCallGraph::callee_end() cooperate to iterate over an empty set (EmptyActual) for any call site not found in the ActualCallees map. So if direct calls are not tracked,
2011 Aug 11
1
[LLVMdev] EQTDDataStructures omits obvious, direct callee from DSCallGraph
...ram Professor, Computer Science University of Illinois at Urbana-Champaign http://llvm.org/~vadve On Aug 11, 2011, at 6:24 AM, <llvmdev-request at cs.uiuc.edu> wrote: > Date: Wed, 10 Aug 2011 23:44:14 -0500 > From: Will Dietz <willdtz at gmail.com> > Subject: Re: [LLVMdev] EQTDDataStructures omits obvious, direct callee > from DSCallGraph > To: Ben Liblit <liblit at cs.wisc.edu> > Cc: llvmdev at cs.uiuc.edu > Message-ID: > <CAKGWAO-Co6V0VFTHRyjpq9MQNPsv9Wo+36=vFTczhFgwB9Ks5g at mail.gmail.com> > Content-Type: text/plain; charset=ISO-8859-1 > > On...
2011 Feb 24
0
[LLVMdev] Implementing platform specific library call simplification
...er version of your pass that sets the boolean flag to false. You can probably use C++ templates or inheritance to do this. Register each pass as a separate pass and have your tool pick which pass to run based upon whatever conditions you want. For example, the Poolalloc pass has to use either EQTDDataStructures or EQBUDataStructures pass depending on whether it is used for SAFECode. Right now it picks one based on a boolean constructor. Instead, I would have the Poolalloc pass be a template that takes the name of the pass to use as input and create two passes:Poolalloc<EQTDDataStructures> and...
2010 Mar 17
1
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Depending on the value of dsa_pass_to_use, either EquivBUDataStructures or EQTDDataStructures is used. In the case that the top-down DSA is used, information is pushed down to nodes in callees. However, if bottom-up DSA is used, information has only been merged upwards and the nodes are not necessarily equivalent. Harmen Andrew Lenharth wrote: > On Tue, Mar 16, 2010 at 3:46 PM, Patric...
2011 Jul 06
1
[LLVMdev] Error on using DataStructureAnalysis
Hi, though DSA isn't maintained in the current build, I need to use it for analyzing dependencies among functions. Therfore I load the EQTDDataStructures pass and retrieve the mapping from nodes int the callee to the ones in the parent DSGraph with computeNodeMapping. In most cases this works well, but for some function calls I get following error: DSGraph.cpp:1379: static void llvm::DSGraph::computeNodeMapping(const llvm::DSNodeHandle&, const...
2011 Feb 24
3
[LLVMdev] Implementing platform specific library call simplification
On Feb 13, 2011, at 12:24 AM, Chris Lattner wrote: > On Feb 2, 2011, at 10:11 AM, Richard Osborne wrote: >> The newlib C library provides iprintf(), a restricted version of printf >> without support for floating-point formatting. I'd like to add an >> optimization which turns calls to printf() into calls to iprintf() if >> the format string has no floating point
2011 Aug 11
0
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
...d 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, mar...
2011 Jul 07
1
[LLVMdev] Error on using DataStructureAnalysis
...nt to it. Do you know what's wrong? Best, Andreas On Wed, Jul 6, 2011 at 2:00 AM, Andreas Wilhelm < andreas.wilhelm at gmx.com > wrote: Hi, though DSA isn't maintained in the current build, I need to use it for analyzing dependencies among functions. Therfore I load the EQTDDataStructures pass and retrieve the mapping from nodes int the callee to the ones in the parent DSGraph with computeNodeMapping. In most cases this works well, but for some function calls I get following error: DSGraph.cpp:1379: static void llvm::DSGraph::computeNodeMapping(const llvm::DSNodeHandle&,...
2015 May 15
2
[LLVMdev] DSA / poolalloc: incorrect callgraph for indirect call
Hello, I am trying to apply DSA (from the poolalloc project - I'm on LLVM 3.2) on the following C program and found that the generated callgraph over-approximates the callees for the simple indirect call. #include <stdio.h> __attribute__((noinline)) static int f1(int arg1, int arg2) { return arg1 + arg2; } __attribute__((noinline)) static int run_func(int (*fptr)(int, int), int
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
2011 Aug 11
2
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
...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 consider using it earlier. Can you give me a high-level idea of how TDDataStructures and EQTDDataStructures differ? Clearly they differ in the "gives the answers Ben expected" dimension, but that's not a very useful description more generally. What should I know about the key differences between these two? > FWIW at the moment DSA doesn't give good results for vtable-heavy >...
2011 Aug 10
4
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
In an earlier message (http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-August/042298.html), Andrew Lenharth suggested that EQTDDataStructures (from the poolalloc project) may only try to resolve indirect function calls. However, I am now finding that the generated DSCallGraph over-approximates the callees in a very simple indirect call. Some over-approximation is unavoidable, but this case seems simple enough that any reasonable an...
2010 Mar 17
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
On Tue, Mar 16, 2010 at 3:46 PM, Patrick Alexander Simmons <simmon12 at cs.uiuc.edu> wrote: > I figure (hopefully correctly) that I can iterate over all pool > descriptors in a program by iterating over all users of poolinit and > looking at the first argument.  However, once I have a pool descriptor, > I need to get its corresponding DSNode in the function in which it is >
2015 Jul 31
1
[LLVMdev] error open a share library generated by a LLVM pass
...e+Asserts/XX.o" only ET_DYN and ET_EXEC can be loaded -load request ignored. I got another error by use the XX.o in the LLVM src directory $LLVM_SRC/Release+Asserts/lib/XX.o: Error opening '../../Release+Asserts/lib/XX.so': ../../Release+Asserts/lib/XX.so: undefined symbol: _ZN4llvm18EQTDDataStructures2IDE -load request ignored. I installed LLVM-3.3 in ubuntu 12.04.5. there are not errors when I make the LLVM pass. Anybody can help me? why I got these errors? best regards, zhaoqian -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipe...
2011 Aug 11
0
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
...would have expected any analysis to give the same results for either version of the bitcode: callee set is {red, blue} and this answer is complete. What's going wrong here? Attached below is an updated copy of my "ShowCallGraph.cpp" pass. It now uses TDDataStructures (instead of EQTDDataStructures) and prints an additional line of output identifying incomplete callee sets. Thanks for any hints, Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: ShowCallGraph.cpp Type: text/x-c++src Size: 1536 bytes Desc: not available URL: <http://lists.llvm.org/pipe...
2010 Mar 16
4
[LLVMdev] Getting the DSNode from a Pool Descriptor?
I figure (hopefully correctly) that I can iterate over all pool descriptors in a program by iterating over all users of poolinit and looking at the first argument. However, once I have a pool descriptor, I need to get its corresponding DSNode in the function in which it is complete (or in the global graph if it is a global). How do I do this? Thanks, --Patrick
2011 Aug 16
0
[LLVMdev] llvm-poolalloc DSA patch: code cleanups and thread safety
...> As an FYI, I'm at Usenix Security this week, so I'm only getting small > amounts of sporadic work done. I'll be back in the office next week. > > > > (1) Do I misunderstand the meaning of "incomplete", as in > node->isIncompleteNode()? I've run EQTDDataStructures on the attached > program (foo.c, foo.ll), generating the function graph for main which is > attached (eqtd.main.pdf). Shouldn't the %p node be marked Incomplete, since > its address is passed to an unknown external function? > > > In the original DSA implementation, you woul...