[llvm] [NFC][InstrProf]Generalize getParsedIRPGOFuncName to getParsedIRPGOName (PR #81054)
Mingming Liu via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 7 15:43:51 PST 2024
https://github.com/minglotus-6 updated https://github.com/llvm/llvm-project/pull/81054
>From c82250260ef209c1a3ed684c32398603f6c52463 Mon Sep 17 00:00:00 2001
From: mingmingl <mingmingl at google.com>
Date: Wed, 7 Feb 2024 15:32:22 -0800
Subject: [PATCH 1/2] [NFC][InstrProf]Generalize getParsedIRPGOFuncName to
getParsedIRPGOName
- Function getParsedIRPGOFuncName splits name by delimiter. The
`[filename;]mangled-name` format could be generalized for non-function
global values (e.g., vtables for type profiling). So rename the
function.
- Use kGlobalIdentifierDelimiter rather than semicolon directly for
defragmentation.
---
llvm/include/llvm/ProfileData/InstrProf.h | 2 +-
llvm/lib/ProfileData/InstrProf.cpp | 10 +++++-----
llvm/tools/llvm-profdata/llvm-profdata.cpp | 2 +-
llvm/unittests/ProfileData/InstrProfTest.cpp | 4 ++--
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/llvm/include/llvm/ProfileData/InstrProf.h b/llvm/include/llvm/ProfileData/InstrProf.h
index 87e7bbbd727ee5..aa08e949b5eaf2 100644
--- a/llvm/include/llvm/ProfileData/InstrProf.h
+++ b/llvm/include/llvm/ProfileData/InstrProf.h
@@ -195,7 +195,7 @@ std::string getIRPGOFuncName(const Function &F, bool InLTO = false);
/// \return the filename and the function name parsed from the output of
/// \c getIRPGOFuncName()
-std::pair<StringRef, StringRef> getParsedIRPGOFuncName(StringRef IRPGOFuncName);
+std::pair<StringRef, StringRef> getParsedIRPGOName(StringRef IRPGOName);
/// Return the name of the global variable used to store a function
/// name in PGO instrumentation. \c FuncName is the IRPGO function name
diff --git a/llvm/lib/ProfileData/InstrProf.cpp b/llvm/lib/ProfileData/InstrProf.cpp
index 2640027455e0da..b4dd0c202a5c74 100644
--- a/llvm/lib/ProfileData/InstrProf.cpp
+++ b/llvm/lib/ProfileData/InstrProf.cpp
@@ -380,11 +380,11 @@ std::string getPGOFuncName(const Function &F, bool InLTO, uint64_t Version) {
// See getIRPGOFuncName() for a discription of the format.
std::pair<StringRef, StringRef>
-getParsedIRPGOFuncName(StringRef IRPGOFuncName) {
- auto [FileName, FuncName] = IRPGOFuncName.split(';');
- if (FuncName.empty())
- return std::make_pair(StringRef(), IRPGOFuncName);
- return std::make_pair(FileName, FuncName);
+getParsedIRPGOName(StringRef IRPGOName) {
+ auto [FileName, MangledName] = IRPGOName.split(kGlobalIdentifierDelimiter);
+ if (MangledName.empty())
+ return std::make_pair(StringRef(), IRPGOName);
+ return std::make_pair(FileName, MangledName);
}
StringRef getFuncNameWithoutPrefix(StringRef PGOFuncName, StringRef FileName) {
diff --git a/llvm/tools/llvm-profdata/llvm-profdata.cpp b/llvm/tools/llvm-profdata/llvm-profdata.cpp
index e6dc81ba1f5b02..38ae5e65220b6c 100644
--- a/llvm/tools/llvm-profdata/llvm-profdata.cpp
+++ b/llvm/tools/llvm-profdata/llvm-profdata.cpp
@@ -3164,7 +3164,7 @@ static int order_main(int argc, const char *argv[]) {
"-order_file.\n";
for (auto &N : Nodes) {
auto [Filename, ParsedFuncName] =
- getParsedIRPGOFuncName(Reader->getSymtab().getFuncOrVarName(N.Id));
+ getParsedIRPGOName(Reader->getSymtab().getFuncOrVarName(N.Id));
if (!Filename.empty())
OS << "# " << Filename << "\n";
OS << ParsedFuncName << "\n";
diff --git a/llvm/unittests/ProfileData/InstrProfTest.cpp b/llvm/unittests/ProfileData/InstrProfTest.cpp
index 8ffb68de7a2d20..76505aea1c9981 100644
--- a/llvm/unittests/ProfileData/InstrProfTest.cpp
+++ b/llvm/unittests/ProfileData/InstrProfTest.cpp
@@ -562,7 +562,7 @@ TEST_F(InstrProfTest, test_irpgo_function_name) {
EXPECT_EQ(IRPGOFuncName, ExpectedIRPGOFuncName);
auto [Filename, ParsedIRPGOFuncName] =
- getParsedIRPGOFuncName(IRPGOFuncName);
+ getParsedIRPGOName(IRPGOFuncName);
StringRef ExpectedParsedIRPGOFuncName = IRPGOFuncName;
if (ExpectedParsedIRPGOFuncName.consume_front("MyModule.cpp;")) {
EXPECT_EQ(Filename, "MyModule.cpp");
@@ -1280,7 +1280,7 @@ TEST(SymtabTest, instr_prof_symtab_module_test) {
ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(IRPGOName));
EXPECT_EQ(StringRef(IRPGOName), IRPGOFuncName);
EXPECT_EQ(StringRef(Funcs[I]),
- getParsedIRPGOFuncName(IRPGOFuncName).second);
+ getParsedIRPGOName(IRPGOFuncName).second);
// Ensure we can still read this old record name.
std::string PGOName = getPGOFuncName(*F);
auto PGOFuncName =
>From 14b90e60e68a8e817ebe3ee429925dd164d996a4 Mon Sep 17 00:00:00 2001
From: mingmingl <mingmingl at google.com>
Date: Wed, 7 Feb 2024 15:42:48 -0800
Subject: [PATCH 2/2] git-format and one-line comment
---
llvm/lib/ProfileData/InstrProf.cpp | 5 ++---
llvm/unittests/ProfileData/InstrProfTest.cpp | 6 ++----
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/ProfileData/InstrProf.cpp b/llvm/lib/ProfileData/InstrProf.cpp
index b4dd0c202a5c74..d26004e2385bca 100644
--- a/llvm/lib/ProfileData/InstrProf.cpp
+++ b/llvm/lib/ProfileData/InstrProf.cpp
@@ -378,9 +378,8 @@ std::string getPGOFuncName(const Function &F, bool InLTO, uint64_t Version) {
return getPGOFuncName(F.getName(), GlobalValue::ExternalLinkage, "");
}
-// See getIRPGOFuncName() for a discription of the format.
-std::pair<StringRef, StringRef>
-getParsedIRPGOName(StringRef IRPGOName) {
+// See getIRPGOObjectName() for a discription of the format.
+std::pair<StringRef, StringRef> getParsedIRPGOName(StringRef IRPGOName) {
auto [FileName, MangledName] = IRPGOName.split(kGlobalIdentifierDelimiter);
if (MangledName.empty())
return std::make_pair(StringRef(), IRPGOName);
diff --git a/llvm/unittests/ProfileData/InstrProfTest.cpp b/llvm/unittests/ProfileData/InstrProfTest.cpp
index 76505aea1c9981..cd4552a039b36b 100644
--- a/llvm/unittests/ProfileData/InstrProfTest.cpp
+++ b/llvm/unittests/ProfileData/InstrProfTest.cpp
@@ -561,8 +561,7 @@ TEST_F(InstrProfTest, test_irpgo_function_name) {
auto IRPGOFuncName = getIRPGOFuncName(*F);
EXPECT_EQ(IRPGOFuncName, ExpectedIRPGOFuncName);
- auto [Filename, ParsedIRPGOFuncName] =
- getParsedIRPGOName(IRPGOFuncName);
+ auto [Filename, ParsedIRPGOFuncName] = getParsedIRPGOName(IRPGOFuncName);
StringRef ExpectedParsedIRPGOFuncName = IRPGOFuncName;
if (ExpectedParsedIRPGOFuncName.consume_front("MyModule.cpp;")) {
EXPECT_EQ(Filename, "MyModule.cpp");
@@ -1279,8 +1278,7 @@ TEST(SymtabTest, instr_prof_symtab_module_test) {
auto IRPGOFuncName =
ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(IRPGOName));
EXPECT_EQ(StringRef(IRPGOName), IRPGOFuncName);
- EXPECT_EQ(StringRef(Funcs[I]),
- getParsedIRPGOName(IRPGOFuncName).second);
+ EXPECT_EQ(StringRef(Funcs[I]), getParsedIRPGOName(IRPGOFuncName).second);
// Ensure we can still read this old record name.
std::string PGOName = getPGOFuncName(*F);
auto PGOFuncName =
More information about the llvm-commits
mailing list