[LLVMdev] Call Graph Analysis and function cloning
Nick Lewycky
nicholas at mxc.ca
Thu Aug 6 23:41:50 PDT 2009
Alireza.Moshtaghi at microchip.com wrote:
> I need to perform call graph analysis (after all modules are merged) to
> find which function calls which, and depending on the attributes that
> each function has and what functions call it, I may need to clone it and
> modify some of calls to that function to call the cloned function.
>
> Currently we are doing this in few acrobatic moves that span from an
> llvm-ld pass (to do call graph analysis) all the way to AsmPrinter (to
> clone the function) and eventually our in-house linker (to check for
> some irregularities). But I don't like it at all and I'm sure we will
> run into problems later. So I would like to see if anybody has a better
> answer for us.
>
> I guess the most important question is how best (if possible) can I
> clone a function before or during codegen.
#include "llvm/Transforms/Utils/Cloning.h"
DenseMap<const Value *, Value *> ValueMap;
Function *NewF = llvm::CloneFunction(F, ValueMap);
Nick
> Currently we are cloning the function in AsmPrinter but it does not look
> good to me.
>
> Any thoughts?
>
> Alireza Moshtaghi
> Senior Software Engineer
> Development Systems, Microchip Technology
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list