[LLVMdev] Loading ProfileInfo

Eric Zimmerman ezimmerm at uiuc.edu
Thu Mar 17 16:47:19 PST 2005


On Wed, Mar 16, 2005 at 09:16:20PM -0600, Chris Lattner wrote:
> >I am fairly new to the LLVM pass framework.  My goal is to extend the
> >CFGPrinter analysis pass to label the edges of the graph with their
> >edge-counts from profile data.
> >
> >I can generate the CFGs using 'analyze', but I am having trouble
> >loading the profile data.  I added the line
> >AU.addRequired<ProfileInfo>(); to the getAnalysisUsage.  It is
> >returning zero for all the edge counts.
> >
> >In llvm/Analysis/ProfileInfo.h, I noticed a prototype:
> >Pass *createProfileLoaderPass(const std::string &Filename);
> >
> >The ProfileInfoLoaderPass does not appear in the list of analyses,
> >presumably because it is registered as an "Opt".  Do I need to
> >explicitly request a LoaderPass in addition to ProfileInfo?  What is
> >the right way to do this?
> 
> 
> Run opt with something like this:
> 
>   opt -profile-loader -profile-info-file=whatever.llvmprof 
>   -yourprofileusingpass   ...
> 

Chris,

Thanks, that worked.  For my own understanding, I wondered if using
the opt command-line is the only way to request a
ProfileInfoLoaderPass?  What if I want to use this information in the
'analyze' utility instead of 'opt'?

Also, rather than requesting the pass interactively, can I somehow use
the constructor provided in ProfileInfo.h?  Here is the prototype, but
I'm not sure how to use it: 
Pass *createProfileLoaderPass(const std::string &Filename);

-Eric




More information about the llvm-dev mailing list