[llvm] 1c2634e - [NFC]Rename InstrProf::getFuncName{,orExternalSymbol} to getFuncOrValName{,IfDefined} (#68240)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 4 11:56:33 PDT 2023
Author: Mingming Liu
Date: 2023-10-04T11:56:28-07:00
New Revision: 1c2634e316f135855e66255e76d2d317fefa0622
URL: https://github.com/llvm/llvm-project/commit/1c2634e316f135855e66255e76d2d317fefa0622
DIFF: https://github.com/llvm/llvm-project/commit/1c2634e316f135855e66255e76d2d317fefa0622.diff
LOG: [NFC]Rename InstrProf::getFuncName{,orExternalSymbol} to getFuncOrValName{,IfDefined} (#68240)
- This function looks up MD5ToNameMap to return a name for a given MD5.
https://github.com/llvm/llvm-project/pull/66825 adds MD5 of global
variable names into this map. So rename methods and update comments
Added:
Modified:
llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
llvm/include/llvm/ProfileData/InstrProf.h
llvm/include/llvm/ProfileData/InstrProfReader.h
llvm/lib/ProfileData/InstrProfWriter.cpp
llvm/tools/llvm-profdata/llvm-profdata.cpp
llvm/unittests/ProfileData/InstrProfTest.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
index b407fe277c543b8..b2fdbc1936ef28b 100644
--- a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
+++ b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
@@ -813,7 +813,7 @@ template <class FuncRecordTy, support::endianness Endian>
Error getFuncNameViaRef(const FuncRecordTy *Record,
InstrProfSymtab &ProfileNames, StringRef &FuncName) {
uint64_t NameRef = getFuncNameRef<FuncRecordTy, Endian>(Record);
- FuncName = ProfileNames.getFuncName(NameRef);
+ FuncName = ProfileNames.getFuncOrVarName(NameRef);
return Error::success();
}
diff --git a/llvm/include/llvm/ProfileData/InstrProf.h b/llvm/include/llvm/ProfileData/InstrProf.h
index f9096b46157200b..bee40351c4eaf97 100644
--- a/llvm/include/llvm/ProfileData/InstrProf.h
+++ b/llvm/include/llvm/ProfileData/InstrProf.h
@@ -510,14 +510,14 @@ class InstrProfSymtab {
/// an empty string.
StringRef getFuncName(uint64_t FuncNameAddress, size_t NameSize);
- /// Return function's PGO name from the name's md5 hash value.
- /// If not found, return an empty string.
- inline StringRef getFuncName(uint64_t FuncMD5Hash);
+ /// Return name of functions or global variables from the name's md5 hash
+ /// value. If not found, return an empty string.
+ inline StringRef getFuncOrVarName(uint64_t ValMD5Hash);
- /// Just like getFuncName, except that it will return a non-empty StringRef
- /// if the function is external to this symbol table. All such cases
- /// will be represented using the same StringRef value.
- inline StringRef getFuncNameOrExternalSymbol(uint64_t FuncMD5Hash);
+ /// Just like getFuncOrVarName, except that it will return literal string
+ /// 'External Symbol' if the function or global variable is external to
+ /// this symbol table.
+ inline StringRef getFuncOrVarNameIfDefined(uint64_t ValMD5Hash);
/// True if Symbol is the value used to represent external symbols.
static bool isExternalSymbol(const StringRef &Symbol) {
@@ -565,19 +565,19 @@ void InstrProfSymtab::finalizeSymtab() {
Sorted = true;
}
-StringRef InstrProfSymtab::getFuncNameOrExternalSymbol(uint64_t FuncMD5Hash) {
- StringRef ret = getFuncName(FuncMD5Hash);
+StringRef InstrProfSymtab::getFuncOrVarNameIfDefined(uint64_t MD5Hash) {
+ StringRef ret = getFuncOrVarName(MD5Hash);
if (ret.empty())
return InstrProfSymtab::getExternalSymbol();
return ret;
}
-StringRef InstrProfSymtab::getFuncName(uint64_t FuncMD5Hash) {
+StringRef InstrProfSymtab::getFuncOrVarName(uint64_t MD5Hash) {
finalizeSymtab();
- auto Result = llvm::lower_bound(MD5NameMap, FuncMD5Hash,
+ auto Result = llvm::lower_bound(MD5NameMap, MD5Hash,
[](const std::pair<uint64_t, StringRef> &LHS,
uint64_t RHS) { return LHS.first < RHS; });
- if (Result != MD5NameMap.end() && Result->first == FuncMD5Hash)
+ if (Result != MD5NameMap.end() && Result->first == MD5Hash)
return Result->second;
return StringRef();
}
diff --git a/llvm/include/llvm/ProfileData/InstrProfReader.h b/llvm/include/llvm/ProfileData/InstrProfReader.h
index 17194e2aa4c73ca..723df8bff5284e3 100644
--- a/llvm/include/llvm/ProfileData/InstrProfReader.h
+++ b/llvm/include/llvm/ProfileData/InstrProfReader.h
@@ -452,7 +452,7 @@ class RawInstrProfReader : public InstrProfReader {
}
StringRef getName(uint64_t NameRef) const {
- return Symtab->getFuncName(swap(NameRef));
+ return Symtab->getFuncOrVarName(swap(NameRef));
}
int getCounterTypeSize() const {
diff --git a/llvm/lib/ProfileData/InstrProfWriter.cpp b/llvm/lib/ProfileData/InstrProfWriter.cpp
index b74d5c3862d803d..2fd09713c9b0509 100644
--- a/llvm/lib/ProfileData/InstrProfWriter.cpp
+++ b/llvm/lib/ProfileData/InstrProfWriter.cpp
@@ -722,7 +722,7 @@ void InstrProfWriter::writeRecordInText(StringRef Name, uint64_t Hash,
std::unique_ptr<InstrProfValueData[]> VD = Func.getValueForSite(VK, S);
for (uint32_t I = 0; I < ND; I++) {
if (VK == IPVK_IndirectCallTarget)
- OS << Symtab.getFuncNameOrExternalSymbol(VD[I].Value) << ":"
+ OS << Symtab.getFuncOrVarNameIfDefined(VD[I].Value) << ":"
<< VD[I].Count << "\n";
else
OS << VD[I].Value << ":" << VD[I].Count << "\n";
@@ -790,7 +790,7 @@ void InstrProfWriter::writeTextTemporalProfTraceData(raw_fd_ostream &OS,
for (auto &Trace : TemporalProfTraces) {
OS << "# Weight:\n" << Trace.Weight << "\n";
for (auto &NameRef : Trace.FunctionNameRefs)
- OS << Symtab.getFuncName(NameRef) << ",";
+ OS << Symtab.getFuncOrVarName(NameRef) << ",";
OS << "\n";
}
OS << "\n";
diff --git a/llvm/tools/llvm-profdata/llvm-profdata.cpp b/llvm/tools/llvm-profdata/llvm-profdata.cpp
index fdb2c1405f1237f..18307935c7558b0 100644
--- a/llvm/tools/llvm-profdata/llvm-profdata.cpp
+++ b/llvm/tools/llvm-profdata/llvm-profdata.cpp
@@ -2390,7 +2390,7 @@ static void traverseAllValueSites(const InstrProfRecord &Func, uint32_t VK,
if (Symtab == nullptr)
OS << format("%4" PRIu64, VD[V].Value);
else
- OS << Symtab->getFuncName(VD[V].Value);
+ OS << Symtab->getFuncOrVarName(VD[V].Value);
OS << ", " << format("%10" PRId64, VD[V].Count) << " ] ("
<< format("%.2f%%", (VD[V].Count * 100.0 / SiteSum)) << ")\n";
}
@@ -2644,7 +2644,7 @@ static int showInstrProfile(
OS << " Temporal Profile Trace " << i << " (weight=" << Traces[i].Weight
<< " count=" << Traces[i].FunctionNameRefs.size() << "):\n";
for (auto &NameRef : Traces[i].FunctionNameRefs)
- OS << " " << Reader->getSymtab().getFuncName(NameRef) << "\n";
+ OS << " " << Reader->getSymtab().getFuncOrVarName(NameRef) << "\n";
}
}
@@ -3079,7 +3079,7 @@ static int order_main(int argc, const char *argv[]) {
WithColor::note() << "# Ordered " << Nodes.size() << " functions\n";
for (auto &N : Nodes) {
auto [Filename, ParsedFuncName] =
- getParsedIRPGOFuncName(Reader->getSymtab().getFuncName(N.Id));
+ getParsedIRPGOFuncName(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 76f88c058424d03..9c6d15552174cc9 100644
--- a/llvm/unittests/ProfileData/InstrProfTest.cpp
+++ b/llvm/unittests/ProfileData/InstrProfTest.cpp
@@ -1250,23 +1250,23 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_test) {
FuncNames.push_back("bar3");
InstrProfSymtab Symtab;
EXPECT_THAT_ERROR(Symtab.create(FuncNames), Succeeded());
- StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func1"));
+ StringRef R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func1"));
ASSERT_EQ(StringRef("func1"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func2"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func2"));
ASSERT_EQ(StringRef("func2"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func3"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func3"));
ASSERT_EQ(StringRef("func3"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar1"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar1"));
ASSERT_EQ(StringRef("bar1"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar2"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar2"));
ASSERT_EQ(StringRef("bar2"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar3"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar3"));
ASSERT_EQ(StringRef("bar3"), R);
// negative tests
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar4"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar4"));
ASSERT_EQ(StringRef(), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("foo4"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("foo4"));
ASSERT_EQ(StringRef(), R);
// Now incrementally update the symtab
@@ -1275,23 +1275,23 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_test) {
EXPECT_THAT_ERROR(Symtab.addFuncName("blah_3"), Succeeded());
// Check again
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_1"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_1"));
ASSERT_EQ(StringRef("blah_1"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_2"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_2"));
ASSERT_EQ(StringRef("blah_2"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_3"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_3"));
ASSERT_EQ(StringRef("blah_3"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func1"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func1"));
ASSERT_EQ(StringRef("func1"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func2"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func2"));
ASSERT_EQ(StringRef("func2"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func3"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func3"));
ASSERT_EQ(StringRef("func3"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar1"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar1"));
ASSERT_EQ(StringRef("bar1"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar2"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar2"));
ASSERT_EQ(StringRef("bar2"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar3"));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar3"));
ASSERT_EQ(StringRef("bar3"), R);
}
@@ -1331,14 +1331,14 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_module_test) {
std::string IRPGOName = getIRPGOFuncName(*F);
auto IRPGOFuncName =
- ProfSymtab.getFuncName(IndexedInstrProf::ComputeHash(IRPGOName));
+ ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(IRPGOName));
EXPECT_EQ(StringRef(IRPGOName), IRPGOFuncName);
EXPECT_EQ(StringRef(Funcs[I]),
getParsedIRPGOFuncName(IRPGOFuncName).second);
// Ensure we can still read this old record name.
std::string PGOName = getPGOFuncName(*F);
auto PGOFuncName =
- ProfSymtab.getFuncName(IndexedInstrProf::ComputeHash(PGOName));
+ ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(PGOName));
EXPECT_EQ(StringRef(PGOName), PGOFuncName);
EXPECT_THAT(PGOFuncName.str(), EndsWith(Funcs[I].str()));
}
@@ -1396,9 +1396,10 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_compression_test) {
// Now do the checks:
// First sampling some data points:
- StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[0]));
+ StringRef R =
+ Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(FuncNames1[0]));
ASSERT_EQ(StringRef("func_0"), R);
- R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[1]));
+ R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(FuncNames1[1]));
ASSERT_EQ(StringRef("f oooooooooooooo_0"), R);
for (int I = 0; I < 3; I++) {
std::string N[4];
@@ -1407,7 +1408,8 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_compression_test) {
N[2] = FuncNames2[2 * I];
N[3] = FuncNames2[2 * I + 1];
for (int J = 0; J < 4; J++) {
- StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(N[J]));
+ StringRef R =
+ Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(N[J]));
ASSERT_EQ(StringRef(N[J]), R);
}
}
More information about the llvm-commits
mailing list