mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-24 00:29:25 +00:00
[memprof] Use unknown_function error type for missing functions
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. Differential Revision: https://reviews.llvm.org/D124953
This commit is contained in:
parent
6123e9c0d0
commit
655294866c
@ -1050,9 +1050,9 @@ IndexedInstrProfReader::getMemProfRecord(const uint64_t FuncNameHash) {
|
||||
"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.
|
||||
|
@ -352,8 +352,15 @@ TEST_F(InstrProfTest, test_memprof_getrecord_error) {
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user