[clang] [llvm] [PGO][GlobalValue][LTO]In GlobalValues::getGlobalIdentifier, use semicolon as delimiter for local-linkage varibles. (PR #74008)

Mingming Liu via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 1 10:46:53 PST 2023


================
@@ -246,11 +246,27 @@ std::string InstrProfError::message() const {
 
 char InstrProfError::ID = 0;
 
-std::string getPGOFuncName(StringRef RawFuncName,
-                           GlobalValue::LinkageTypes Linkage,
+std::string getPGOFuncName(StringRef Name, GlobalValue::LinkageTypes Linkage,
----------------
minglotus-6 wrote:

>  It looks like the most recent version of the patch changes getPGOFuncName to getLegacyPGOFuncName for the old format, and uses getIRPGOFuncName for the new format.

This is intentional.  In this PR, renaming the `getPGOFuncName` (that takes [stringified names](https://github.com/llvm/llvm-project/blob/bc4e0c048aa3cd940b0cea787014c7e8680e5040/llvm/lib/ProfileData/InstrProf.cpp#L249) as argument) to  `getLegacyPGOFuncName` is probably fine since it has three callers.

Prior to this PR both `getPGOFuncName` (that [takes Functions as argument](https://github.com/llvm/llvm-project/blob/bc4e0c048aa3cd940b0cea787014c7e8680e5040/llvm/lib/ProfileData/InstrProf.cpp#L359)) and `getIRPGOFuncName` are called in quite a few places, so changing both names would cause too many diffs in this functional change. To use (simpler) `getPGOFuncName` for new `;` format, I'm thinking a separate NFC patch is the way to go.

https://github.com/llvm/llvm-project/pull/74008


More information about the cfe-commits mailing list