Not able to use PGO with LLVM+Clang built from source

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