[llvm] [clang-tools-extra] [clang] [compiler-rt] [PGO][GlobalValue][LTO]In GlobalValues::getGlobalIdentifier, use semicolon as delimiter for local-linkage varibles. (PR #74008)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 8 15:40:46 PST 2023
================
@@ -144,25 +145,27 @@ void GlobalObject::copyAttributesFrom(const GlobalObject *Src) {
std::string GlobalValue::getGlobalIdentifier(StringRef Name,
GlobalValue::LinkageTypes Linkage,
StringRef FileName) {
-
// Value names may be prefixed with a binary '1' to indicate
// that the backend should not modify the symbols due to any platform
// naming convention. Do not include that '1' in the PGO profile name.
if (Name[0] == '\1')
Name = Name.substr(1);
- std::string NewName = std::string(Name);
+ SmallString<64> GlobalName;
if (llvm::GlobalValue::isLocalLinkage(Linkage)) {
// For local symbols, prepend the main file name to distinguish them.
// Do not include the full path in the file name since there's no guarantee
// that it will stay the same, e.g., if the files are checked out from
// version control in different locations.
if (FileName.empty())
- NewName = NewName.insert(0, "<unknown>:");
+ GlobalName.append("<unknown>");
else
- NewName = NewName.insert(0, FileName.str() + ":");
+ GlobalName.append(FileName.str());
+
+ GlobalName.append({kGlobalIdentifierDelimiter});
----------------
MaskRay wrote:
Nit; use `+=` or `push_back`
https://github.com/llvm/llvm-project/pull/74008
More information about the llvm-commits
mailing list