Is MSVC-style PGO possible with Clang?

Hi,

MSVC don't require the whole project to be compiled twice to use PGO.
It's just compile->link->profile run->link again. I wonder if the same
is possible with clang.

From my limited knowledge of clang/llvm LTO, I assume only the LLVM IR

is generated during compilation, and codegen only happens at link
time. So I think it is possible to use profile data during link-time
code generation?

I want to know more about this. Thanks.