[PATCH] D124953: [memprof] Use unknown_function error type for missing functions
Teresa Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 4 11:56:18 PDT 2022
tejohnson created this revision.
tejohnson added a reviewer: snehasish.
Herald added subscribers: wenlei, hiraditya.
Herald added a project: All.
tejohnson requested review of this revision.
Herald added a project: LLVM.
Switch the error type when a function is not found in the memprof
profile to unknown_function. This gives compatibility with normal PGO
function matching, and also prevents issuing large numbers of additional
matching errors since pgo-warn-missing-function is off by default.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D124953
Files:
llvm/lib/ProfileData/InstrProfReader.cpp
llvm/unittests/ProfileData/InstrProfTest.cpp
Index: llvm/unittests/ProfileData/InstrProfTest.cpp
===================================================================
--- llvm/unittests/ProfileData/InstrProfTest.cpp
+++ llvm/unittests/ProfileData/InstrProfTest.cpp
@@ -352,8 +352,15 @@
auto Profile = Writer.writeBuffer();
readProfile(std::move(Profile));
+ // Missing frames give a hash_mismatch error.
auto RecordOr = Reader->getMemProfRecord(0x9999);
- EXPECT_THAT_ERROR(RecordOr.takeError(), Failed());
+ ASSERT_TRUE(
+ ErrorEquals(instrprof_error::hash_mismatch, RecordOr.takeError()));
+
+ // Missing functions give a unknown_function error.
+ RecordOr = Reader->getMemProfRecord(0x1111);
+ ASSERT_TRUE(
+ ErrorEquals(instrprof_error::unknown_function, RecordOr.takeError()));
}
TEST_F(InstrProfTest, test_memprof_merge) {
Index: llvm/lib/ProfileData/InstrProfReader.cpp
===================================================================
--- llvm/lib/ProfileData/InstrProfReader.cpp
+++ llvm/lib/ProfileData/InstrProfReader.cpp
@@ -1050,9 +1050,9 @@
"no memprof data available in profile");
auto Iter = MemProfRecordTable->find(FuncNameHash);
if (Iter == MemProfRecordTable->end())
- return make_error<InstrProfError>(instrprof_error::hash_mismatch,
- "memprof record not found for hash " +
- Twine(FuncNameHash));
+ return make_error<InstrProfError>(
+ instrprof_error::unknown_function,
+ "memprof record not found for function hash " + Twine(FuncNameHash));
// Setup a callback to convert from frame ids to frame using the on-disk
// FrameData hash table.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124953.427103.patch
Type: text/x-patch
Size: 1701 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220504/3e4d0536/attachment.bin>
More information about the llvm-commits
mailing list