[LLVMdev] DSA - LocalDataStructures pass does not create DSGraphs
sebald.ziegler.maillist at ikolus.de
sebald.ziegler.maillist at ikolus.de
Thu Aug 8 07:30:50 PDT 2013
On Wednesday, August 07, 2013 18:57:16 sebald.ziegler.maillist at ikolus.de
wrote:
> Hallo.
>
> I wanted to use the DSA from the poolalloc project as a starting point for
> static C code analysis (for me it has some benefits to work on LLVM-IR
> (generated by clang) instead of C code).
>
> Currently there is no poolalloc version 3.3. Therefore I wrote a quick
> patch to make poolalloc 3.2 compile with llvm 3.3 (mostly adaptions to
> file relocations were necessary). The patch is attached as it is quite
> small.
>
> With the foundations working a simple test before getting serious seemed to
> be a good idea. So I tried to perform the LocalAnalysis
> (LocalDataStructures pass in poolalloc) on the running example (LLVM-IR
> obtained by clang) of Chris Lattner's PHD thesis (p. 44) (code attached).
>
> When this pass(LocalDataStructures) is run I can call dumpCallGraph() on it
> and get the correct result. But calls to hasDSGraph(const Function &F) all
> return false although they should not. DSGraphs should have been built.
>
> Does anyone see what I am doing wrong? Or is this a bug?
Found out what I did wrong:
- PassManager performs cleanup operations (I thought this would only happen if
the PM's dtor gets called)
- stuff gets deleted but parts are still accessible (call graph information)
So this question has actually nothing to do with DSA.
Solution:
Acknowledge the existence of the PassManager environment -> write own pass
that consumes the information of LocalDataStructures pass...
>
> Thank you for any help and comments!
>
> Sebald
More information about the llvm-dev
mailing list