[PGO] Are the `__llvm_profile_` functions stable C APIs across LLVM releases?

Since the number of most useful APIs are very limited, I am leaning towards let introduce a header like you suggested to reduce the number of files to be maintained.

The PGO_GEN and PGO_USE macro themselves are a useful features that may find other uses. The caveat is to avoid introducing code (control flow) divergence between prof-gen and prof-use with these macros, especially for hot code regions .