Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Indirect function call"
2006 May 23
4
[LLVMdev] Indirect function call
On Monday 22 May 2006 22:22, Andrew Lenharth wrote:
> On Mon, 2006-05-22 at 15:33 +0800, 澶忎竴姘� wrote:
> > But my code does not always works: if the arguments are not pointer,
> > CompleteBUDataStructures not records it. So, if you want to find all indirect
> > calls, you maybe have to repair CompleteBUDataStructures. :)
>
> Not surprising, CBU is trying to do something
2006 May 23
0
[LLVMdev] Indirect function call
On Tue, 2006-05-23 at 13:32 +0800, Nai Xia wrote:
> On Monday 22 May 2006 22:22, Andrew Lenharth wrote:
> > On Mon, 2006-05-22 at 15:33 +0800, 澶忎竴姘� wrote:
> > > But my code does not always works: if the arguments are not pointer,
> > > CompleteBUDataStructures not records it. So, if you want to find all indirect
> > > calls, you maybe have to repair
2006 May 22
2
[LLVMdev] Indirect function call
The follwing is a snippet of code to find some indirect calls in a module, which I
learned from TopDownClosure.cpp:
void FPS::repairCallGraph(Module &M) {
CompleteBUDataStructures &DS = getAnalysis<CompleteBUDataStructures>();
for (Module::iterator f = M.begin(); f != M.end(); ++f ) {
if( f->isExternal() ) continue;
for (Function::iterator I = f->begin(); I !=
2006 May 22
0
[LLVMdev] Indirect function call
On Mon, 2006-05-22 at 15:33 +0800, 夏一民 wrote:
> But my code does not always works: if the arguments are not pointer,
> CompleteBUDataStructures not records it. So, if you want to find all indirect
> calls, you maybe have to repair CompleteBUDataStructures. :)
Not surprising, CBU is trying to do something entirely different that
what you are.
> If you do not use BUDataStructures, you
2007 Jul 17
0
[LLVMdev] BasicCallGraph patch
On Thu, 12 Jul 2007, Zhongxing Xu wrote:
> The current BasicCallGraph will miss call sites like this:
> %tmp86 = call i8* (...)* bitcast (i8* ()* @find_ispell to i8* (...)*)( )
> ; <i8*> [#uses=1]
>
> Here the direct user of @find_ispell is a ConstantExpr.
> I added several lines of code to address this case.
> Below is the output of command: svn diff
2007 Jul 12
2
[LLVMdev] BasicCallGraph patch
The current BasicCallGraph will miss call sites like this:
%tmp86 = call i8* (...)* bitcast (i8* ()* @find_ispell to i8* (...)*)( )
; <i8*> [#uses=1]
Here the direct user of @find_ispell is a ConstantExpr.
I added several lines of code to address this case.
Below is the output of command: svn diff lib/Analysis/IPA/CallGraph.cpp
Attached is LLVM asm files with such function calls.
2010 Oct 06
2
[LLVMdev] Segmentation Fault of BasicCallGraph?
Hi,
I did a little experiment, basically to extract implemented CallGraph
to be a "new" pass with different registered name, and run the "new"
pass, but the result always gives out Segmentation Fault... I am
probably missing
sth?
Implemented another new class,
class BasicCallGraph2 : public ModulePass, public CallGraph {
.....
...
}
The inside code is exact same as
2007 Jul 17
2
[LLVMdev] BasicCallGraph patch
I am doing inter-procedural static analysis, so I need to do DFS of call
graph. llvm-gcc sometimes generates this kind of call instruction, which
cause the call graph to be incomplete.
But thanks for your information, instcombine really solves the problem.
On 7/17/07, Chris Lattner <sabre at nondot.org> wrote:
>
> On Thu, 12 Jul 2007, Zhongxing Xu wrote:
> > The current
2010 Oct 07
0
[LLVMdev] Segmentation Fault of BasicCallGraph?
Shuying Liang wrote:
> Hi,
>
> I did a little experiment, basically to extract implemented CallGraph
> to be a "new" pass with different registered name, and run the "new"
> pass, but the result always gives out Segmentation Fault... I am
> probably missing
> sth?
>
> Implemented another new class,
> class BasicCallGraph2 : public ModulePass,
2006 Mar 26
0
[LLVMdev] could you give me some advice ?
lizhuo,您好!
不是很明白你的意思,好像你想从一个ConstantExpr::getPtrPtrFromArrayPtr 指针得到这个ConstantExpr 的内容,
但你的困难在哪里?
======= 2006-03-25 22:04:14 您在来信中写道:=======
>hi
>I have one llvm program like this :
>..
>; define ConstantArray
>"E1$str" = internal constant [3 x sbyte] c"E1\00"
>
>; use getPtrPtrFromArrayPtr to define SByte* from ConstantArray
2009 May 10
0
[LLVMdev] Get the call graph SCCs from a function pass
On 2009-05-10 21:18, Nick Johnson wrote:
> On 5/10/09, Török Edwin <edwintorok at gmail.com> wrote:
>
>> On 2009-05-10 20:11, Nick Johnson wrote:
>> > Hello,
>> >
>> > I'm writing a Function Pass. This function pass needs access to the
>> > CallGraph and CallGraph SCCs. Is there any way I can get CallGraph
>> >
2007 Jul 17
0
[LLVMdev] BasicCallGraph patch
On Tue, 17 Jul 2007, Zhongxing Xu wrote:
> I am doing inter-procedural static analysis, so I need to do DFS of call
> graph. llvm-gcc sometimes generates this kind of call instruction, which
> cause the call graph to be incomplete.
>
> But thanks for your information, instcombine really solves the problem.
Happy to help. You'll probably find that other optimizations help as
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
2009 May 10
2
[LLVMdev] Get the call graph SCCs from a function pass
On 5/10/09, Török Edwin <edwintorok at gmail.com> wrote:
> On 2009-05-10 20:11, Nick Johnson wrote:
> > Hello,
> >
> > I'm writing a Function Pass. This function pass needs access to the
> > CallGraph and CallGraph SCCs. Is there any way I can get CallGraph
> > information without changing my pass to a CallGraphSCCPass ?
>
>
> Does
2006 May 23
2
[LLVMdev] Indirect function call
On Tuesday 23 May 2006 13:34, Chris Lattner wrote:
> On Tue, 23 May 2006, Nai Xia wrote:
> > Maybe Chris can us give more helpful comments.
>
> Andrew (and Dinakar, and perhaps others) are the current current
> maintainers of DSA.
Oh, I'd say sorry to you and Andrew both.
I had though you are the maintainer... ...
So I am currently thinking that maybe it is not hard to
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
2006 May 23
0
[LLVMdev] Indirect function call
On Tue, 23 May 2006, Nai Xia wrote:
> So I am currently thinking that maybe it is not hard to make the
> callgraph more accurate in a similar way DSA deals with indirect
> callsites. I am just curious about why it is not already in LLVM. I
> think identifying the range of an indirect call is a worthwhile job, for
> example if we want to track the correctness of a program's
2012 Apr 22
0
[LLVMdev] Remove function from module
Михаил wrote:
> It is ModulePass with AnalysisUsage of CallGraph
Ah, then you'll need to update the CallGraph first. Use
"CG.removeFunctionFromModule(F);" before deleting it.
Nick
> Yours sincerely,
> Kadysev Mikhail
>
> 22.04.2012, в 5:20, Nick Lewycky написал(а):
>
>> Михаил wrote:
>>> Thanks, but I replaceAllUsesWith() - works well, but I still
2012 Apr 22
2
[LLVMdev] Remove function from module
It is ModulePass with AnalysisUsage of CallGraph
Yours sincerely,
Kadysev Mikhail
22.04.2012, в 5:20, Nick Lewycky написал(а):
> Михаил wrote:
>> Thanks, but I replaceAllUsesWith() - works well, but I still get bug in
>> eraseFromParent():
>>
>> While deleting: i32 (%class.B*, i32)* %_ZN1B1xEi
>> An asserting value handle still pointed to this value!
>>
2009 Aug 07
0
[LLVMdev] DSA getNodeForValue() Returning NULL Sometimes
Patrick Alexander Simmons wrote:
> Andrew Lenharth wrote:
>
>> On Fri, Aug 7, 2009 at 4:45 PM, Patrick Alexander
>> Simmons<simmon12 at cs.uiuc.edu> wrote:
>>
>>
>>> I'm iterating over all LoadInst and StoreInst-type Instructions in a
>>> Function, and getNodeForValue() is sometimes returning NULL. Why is
>>> this