Hello,
When I try to use -fprofile-instr-generate with clang (which is built from source) I am getting following error :
ld: file not found: /Users/Mr.Pandya/My_Stuff/Active/llvm/build/bin/…/lib/clang/3.9.0/lib/darwin/libclang_rt.profile_osx.a
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
I am not building compiler RT with LLVM.
Am I missing any thing while building llvm/clang ?
Sincerely,
Vivek
Yes, you are missing compiler-rt. If you don’t build compiler-rt, you will not be able to use PGO.
Vivek, in case you haven’t seen it, we do have full support for multi-stage PGO builds in CMake. The documentation is here:
Vivek, in case you haven't seen it, we do have full support for
multi-stage PGO builds in CMake. The documentation is here:
Advanced Build Configurations — LLVM 18.0.0git documentation
Your checkout will need to include LLVM, Clang, and Compiler-RT, and it
will generate targets to run the full PGO generation. I find that using
this is way easier than doing it manually.
Thanks Chris for pointing this but after reading this it seems to optimize
llvm/clang it self , how ever I need to use profile information in a
Machine Function pass to help interprocedural register allocation and then
use it to optimize other softwares. I have not look into PGO.cmake.
-Vivek
-Chris
Ah. I misunderstood. For that case all you need is to build Compiler-RT with your clang.
-Chris