[Help] LLVM Runtime optimization and PGO reoptimization

Dear experts,

Could you please let me know where I can find more information on LLVM runtime optimization and PGO repotimization ?
I found 3.5 Runtime Path Profiling & Reoptimization in the paper “LLVM: A compilation framework for lifelong program analysis and transformation”.

I would like to get some more detailed information and apply it to our code.
I am not using llvm - frontend tools, so I would appreciate it if you could let me know how to add those optimization featuers in the source code ( llvm backend? ).

Thank you very much for your help in advance.