Skip to content

Commit 1c2634e

Browse files
[NFC]Rename InstrProf::getFuncName{,orExternalSymbol} to getFuncOrValName{,IfDefined} (#68240)
- This function looks up MD5ToNameMap to return a name for a given MD5. #66825 adds MD5 of global variable names into this map. So rename methods and update comments
1 parent 7d21086 commit 1c2634e

File tree

6 files changed

+43
-41
lines changed

6 files changed

+43
-41
lines changed

llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ template <class FuncRecordTy, support::endianness Endian>
813813
Error getFuncNameViaRef(const FuncRecordTy *Record,
814814
InstrProfSymtab &ProfileNames, StringRef &FuncName) {
815815
uint64_t NameRef = getFuncNameRef<FuncRecordTy, Endian>(Record);
816-
FuncName = ProfileNames.getFuncName(NameRef);
816+
FuncName = ProfileNames.getFuncOrVarName(NameRef);
817817
return Error::success();
818818
}
819819

llvm/include/llvm/ProfileData/InstrProf.h

+12-12
Original file line numberDiff line numberDiff line change
@@ -510,14 +510,14 @@ class InstrProfSymtab {
510510
/// an empty string.
511511
StringRef getFuncName(uint64_t FuncNameAddress, size_t NameSize);
512512

513-
/// Return function's PGO name from the name's md5 hash value.
514-
/// If not found, return an empty string.
515-
inline StringRef getFuncName(uint64_t FuncMD5Hash);
513+
/// Return name of functions or global variables from the name's md5 hash
514+
/// value. If not found, return an empty string.
515+
inline StringRef getFuncOrVarName(uint64_t ValMD5Hash);
516516

517-
/// Just like getFuncName, except that it will return a non-empty StringRef
518-
/// if the function is external to this symbol table. All such cases
519-
/// will be represented using the same StringRef value.
520-
inline StringRef getFuncNameOrExternalSymbol(uint64_t FuncMD5Hash);
517+
/// Just like getFuncOrVarName, except that it will return literal string
518+
/// 'External Symbol' if the function or global variable is external to
519+
/// this symbol table.
520+
inline StringRef getFuncOrVarNameIfDefined(uint64_t ValMD5Hash);
521521

522522
/// True if Symbol is the value used to represent external symbols.
523523
static bool isExternalSymbol(const StringRef &Symbol) {
@@ -565,19 +565,19 @@ void InstrProfSymtab::finalizeSymtab() {
565565
Sorted = true;
566566
}
567567

568-
StringRef InstrProfSymtab::getFuncNameOrExternalSymbol(uint64_t FuncMD5Hash) {
569-
StringRef ret = getFuncName(FuncMD5Hash);
568+
StringRef InstrProfSymtab::getFuncOrVarNameIfDefined(uint64_t MD5Hash) {
569+
StringRef ret = getFuncOrVarName(MD5Hash);
570570
if (ret.empty())
571571
return InstrProfSymtab::getExternalSymbol();
572572
return ret;
573573
}
574574

575-
StringRef InstrProfSymtab::getFuncName(uint64_t FuncMD5Hash) {
575+
StringRef InstrProfSymtab::getFuncOrVarName(uint64_t MD5Hash) {
576576
finalizeSymtab();
577-
auto Result = llvm::lower_bound(MD5NameMap, FuncMD5Hash,
577+
auto Result = llvm::lower_bound(MD5NameMap, MD5Hash,
578578
[](const std::pair<uint64_t, StringRef> &LHS,
579579
uint64_t RHS) { return LHS.first < RHS; });
580-
if (Result != MD5NameMap.end() && Result->first == FuncMD5Hash)
580+
if (Result != MD5NameMap.end() && Result->first == MD5Hash)
581581
return Result->second;
582582
return StringRef();
583583
}

llvm/include/llvm/ProfileData/InstrProfReader.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ class RawInstrProfReader : public InstrProfReader {
452452
}
453453

454454
StringRef getName(uint64_t NameRef) const {
455-
return Symtab->getFuncName(swap(NameRef));
455+
return Symtab->getFuncOrVarName(swap(NameRef));
456456
}
457457

458458
int getCounterTypeSize() const {

llvm/lib/ProfileData/InstrProfWriter.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ void InstrProfWriter::writeRecordInText(StringRef Name, uint64_t Hash,
722722
std::unique_ptr<InstrProfValueData[]> VD = Func.getValueForSite(VK, S);
723723
for (uint32_t I = 0; I < ND; I++) {
724724
if (VK == IPVK_IndirectCallTarget)
725-
OS << Symtab.getFuncNameOrExternalSymbol(VD[I].Value) << ":"
725+
OS << Symtab.getFuncOrVarNameIfDefined(VD[I].Value) << ":"
726726
<< VD[I].Count << "\n";
727727
else
728728
OS << VD[I].Value << ":" << VD[I].Count << "\n";
@@ -790,7 +790,7 @@ void InstrProfWriter::writeTextTemporalProfTraceData(raw_fd_ostream &OS,
790790
for (auto &Trace : TemporalProfTraces) {
791791
OS << "# Weight:\n" << Trace.Weight << "\n";
792792
for (auto &NameRef : Trace.FunctionNameRefs)
793-
OS << Symtab.getFuncName(NameRef) << ",";
793+
OS << Symtab.getFuncOrVarName(NameRef) << ",";
794794
OS << "\n";
795795
}
796796
OS << "\n";

llvm/tools/llvm-profdata/llvm-profdata.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -2390,7 +2390,7 @@ static void traverseAllValueSites(const InstrProfRecord &Func, uint32_t VK,
23902390
if (Symtab == nullptr)
23912391
OS << format("%4" PRIu64, VD[V].Value);
23922392
else
2393-
OS << Symtab->getFuncName(VD[V].Value);
2393+
OS << Symtab->getFuncOrVarName(VD[V].Value);
23942394
OS << ", " << format("%10" PRId64, VD[V].Count) << " ] ("
23952395
<< format("%.2f%%", (VD[V].Count * 100.0 / SiteSum)) << ")\n";
23962396
}
@@ -2644,7 +2644,7 @@ static int showInstrProfile(
26442644
OS << " Temporal Profile Trace " << i << " (weight=" << Traces[i].Weight
26452645
<< " count=" << Traces[i].FunctionNameRefs.size() << "):\n";
26462646
for (auto &NameRef : Traces[i].FunctionNameRefs)
2647-
OS << " " << Reader->getSymtab().getFuncName(NameRef) << "\n";
2647+
OS << " " << Reader->getSymtab().getFuncOrVarName(NameRef) << "\n";
26482648
}
26492649
}
26502650

@@ -3079,7 +3079,7 @@ static int order_main(int argc, const char *argv[]) {
30793079
WithColor::note() << "# Ordered " << Nodes.size() << " functions\n";
30803080
for (auto &N : Nodes) {
30813081
auto [Filename, ParsedFuncName] =
3082-
getParsedIRPGOFuncName(Reader->getSymtab().getFuncName(N.Id));
3082+
getParsedIRPGOFuncName(Reader->getSymtab().getFuncOrVarName(N.Id));
30833083
if (!Filename.empty())
30843084
OS << "# " << Filename << "\n";
30853085
OS << ParsedFuncName << "\n";

llvm/unittests/ProfileData/InstrProfTest.cpp

+24-22
Original file line numberDiff line numberDiff line change
@@ -1250,23 +1250,23 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_test) {
12501250
FuncNames.push_back("bar3");
12511251
InstrProfSymtab Symtab;
12521252
EXPECT_THAT_ERROR(Symtab.create(FuncNames), Succeeded());
1253-
StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func1"));
1253+
StringRef R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func1"));
12541254
ASSERT_EQ(StringRef("func1"), R);
1255-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func2"));
1255+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func2"));
12561256
ASSERT_EQ(StringRef("func2"), R);
1257-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func3"));
1257+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func3"));
12581258
ASSERT_EQ(StringRef("func3"), R);
1259-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar1"));
1259+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar1"));
12601260
ASSERT_EQ(StringRef("bar1"), R);
1261-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar2"));
1261+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar2"));
12621262
ASSERT_EQ(StringRef("bar2"), R);
1263-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar3"));
1263+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar3"));
12641264
ASSERT_EQ(StringRef("bar3"), R);
12651265

12661266
// negative tests
1267-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar4"));
1267+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar4"));
12681268
ASSERT_EQ(StringRef(), R);
1269-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("foo4"));
1269+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("foo4"));
12701270
ASSERT_EQ(StringRef(), R);
12711271

12721272
// Now incrementally update the symtab
@@ -1275,23 +1275,23 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_test) {
12751275
EXPECT_THAT_ERROR(Symtab.addFuncName("blah_3"), Succeeded());
12761276

12771277
// Check again
1278-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_1"));
1278+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_1"));
12791279
ASSERT_EQ(StringRef("blah_1"), R);
1280-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_2"));
1280+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_2"));
12811281
ASSERT_EQ(StringRef("blah_2"), R);
1282-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("blah_3"));
1282+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("blah_3"));
12831283
ASSERT_EQ(StringRef("blah_3"), R);
1284-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func1"));
1284+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func1"));
12851285
ASSERT_EQ(StringRef("func1"), R);
1286-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func2"));
1286+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func2"));
12871287
ASSERT_EQ(StringRef("func2"), R);
1288-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("func3"));
1288+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("func3"));
12891289
ASSERT_EQ(StringRef("func3"), R);
1290-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar1"));
1290+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar1"));
12911291
ASSERT_EQ(StringRef("bar1"), R);
1292-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar2"));
1292+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar2"));
12931293
ASSERT_EQ(StringRef("bar2"), R);
1294-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash("bar3"));
1294+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash("bar3"));
12951295
ASSERT_EQ(StringRef("bar3"), R);
12961296
}
12971297

@@ -1331,14 +1331,14 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_module_test) {
13311331

13321332
std::string IRPGOName = getIRPGOFuncName(*F);
13331333
auto IRPGOFuncName =
1334-
ProfSymtab.getFuncName(IndexedInstrProf::ComputeHash(IRPGOName));
1334+
ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(IRPGOName));
13351335
EXPECT_EQ(StringRef(IRPGOName), IRPGOFuncName);
13361336
EXPECT_EQ(StringRef(Funcs[I]),
13371337
getParsedIRPGOFuncName(IRPGOFuncName).second);
13381338
// Ensure we can still read this old record name.
13391339
std::string PGOName = getPGOFuncName(*F);
13401340
auto PGOFuncName =
1341-
ProfSymtab.getFuncName(IndexedInstrProf::ComputeHash(PGOName));
1341+
ProfSymtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(PGOName));
13421342
EXPECT_EQ(StringRef(PGOName), PGOFuncName);
13431343
EXPECT_THAT(PGOFuncName.str(), EndsWith(Funcs[I].str()));
13441344
}
@@ -1396,9 +1396,10 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_compression_test) {
13961396

13971397
// Now do the checks:
13981398
// First sampling some data points:
1399-
StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[0]));
1399+
StringRef R =
1400+
Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(FuncNames1[0]));
14001401
ASSERT_EQ(StringRef("func_0"), R);
1401-
R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(FuncNames1[1]));
1402+
R = Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(FuncNames1[1]));
14021403
ASSERT_EQ(StringRef("f oooooooooooooo_0"), R);
14031404
for (int I = 0; I < 3; I++) {
14041405
std::string N[4];
@@ -1407,7 +1408,8 @@ TEST_P(MaybeSparseInstrProfTest, instr_prof_symtab_compression_test) {
14071408
N[2] = FuncNames2[2 * I];
14081409
N[3] = FuncNames2[2 * I + 1];
14091410
for (int J = 0; J < 4; J++) {
1410-
StringRef R = Symtab.getFuncName(IndexedInstrProf::ComputeHash(N[J]));
1411+
StringRef R =
1412+
Symtab.getFuncOrVarName(IndexedInstrProf::ComputeHash(N[J]));
14111413
ASSERT_EQ(StringRef(N[J]), R);
14121414
}
14131415
}

0 commit comments

Comments
 (0)