path profile result with LLVM

I want to get path profiling information with LLVM.
      LLVM provides methods for path profiling.I also get the llvmprof.out
successfully. So I want to output the result.With llvm-prof ,I get the
error:llvm-prof: Unkknown packet #5.
    So I have to write my own pass to output the path profiling result,the
following is my kernel codes:
////////////////////////////////////////////////////////////////////////////////////
    bool PathProfileOutput::runOnModule(Module &M) {
               PathProfileInfo& pathProfileInfo =
getAnalysis<PathProfileInfo>();
         
         for(Module::iterator F = M.begin();F != M.end(); ++F){
    if (F->isDeclaration()) continue;
    
    pathProfileInfo.setCurrentFunction(F);
    
    for(ProfilePathIterator nextPath=pathProfileInfo.pathBegin();nextPath !=
pathProfileInfo.pathEnd();nextPath++){
    ProfilePath* currentPath = nextPath->second;
    errs() << "Function: "+ F->getName() << "\n";
    errs() <<"path #" << currentPath->getNumber()<<":" <<
currentPath->getCount() <<"\n";
    }
    }
    return true;
               }
//////////////////////////////////////////////////////////////////
I test with a fft program,and get the output . I intend to get all path
information ,but the result only contains part path information.The
following is the output of a kernel function in my fft program:
<http://llvm.1065342.n5.nabble.com/file/n56354/hotspotOr11k.png&gt;
My questions :How to explain the output result?Does that mean hot paths? Or
can anyone tell me how to output the path profiling information correctly?
Thanks!

Hello gssict, I've met just the same problem you met 2 years ago. The only
difference is that I'm new to LLVM while you were familiar with it and shall
be an expert at

it now. Since there is no answer to this question and series of questions
about path profiling, I have to solve it by myself.
  I think the result you get is meaningful, though it needs further
regeneration to get the corresponding paths. I just read the paper96 by B&L,
and view the tech-

report2010 by Adam(seems that he implements the pp) I find:
  1.The algorithm just focuses on intraprocedural, so each function has its
own path count(supported by the result);
  2.Despite self loops, every backedge(at the end of while, for ...) leads to
an increment=1 of path count;
  3.For self loops(there is one in the
common_fft,"for(stage=1;&&(j=j/2)!=1;stage++) ;"),increment should be made
inside basic block;
  4.Combining 2 and 3, I manually instrument common_fft: