[LLVMdev] Questions about LLVM PGO and autoFDO

猫妖 spcatman at qq.com
Mon May 12 09:59:49 PDT 2014


Hi, all


  Recently I'm trying to use LLVM PGO and autoFDO. However I have some problems in the process. 
  LLVM source code is updated on April 9th. Operating system  is SUSE x86_64


  1. Problems in instrumentation based PGO:
  clang -O2 -fprofile-instr-generate test.c -o a.out
  ./a.out     (then default.profraw is generated)
  clang -O2 -fprofile-instr-use=default.profraw test.c -o a.out
  error: pgo data file has malformed function entry
  I found that the run-time function "writeFile" in InstrProfilingFile.cpp didn't write '\n'. 
  But when parsing the profile data,  in CodeGenPGO.cpp line 56, it tried to find '\n' like below:
  CurPtr = strchr(CurPtr, '\n');
  if (!CurPtr) {
    ReportBadPGOData(CGM, "pgo data file has malformed function entry");
    return;
  }
  
  2. Problems in autoFDO: 
  Actually the problem happened in using create_llvm_prof, transformation is failed.
  clang -O2 -g test.c -o a.out
  perf record -b ./a.out    (perf version is 0.0.2, "-b" option is not recognized, why?)
  change to: perf record ./a.out   (so perf.data is generated)
  create_llvm_prof --binary=./a.out --out=code.prof  (it read a.out and perf.data)
  error: Malformed .note.gnu.build-id section
           no build id found in the binary
  it seems that a.out has no build id.



  Someone who can help me?


  Thanks,
  Kaidong Chen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140513/9fbc8327/attachment.html>


More information about the llvm-dev mailing list