aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/SampleProfWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ProfileData/SampleProfWriter.cpp')
-rw-r--r--llvm/lib/ProfileData/SampleProfWriter.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/ProfileData/SampleProfWriter.cpp b/llvm/lib/ProfileData/SampleProfWriter.cpp
index 8017f2a..8939d3a 100644
--- a/llvm/lib/ProfileData/SampleProfWriter.cpp
+++ b/llvm/lib/ProfileData/SampleProfWriter.cpp
@@ -204,6 +204,17 @@ std::error_code SampleProfileWriterExtBinaryBase::writeNameTableSection(
addName(I.first());
addNames(I.second);
}
+
+ // If NameTable contains ".__uniq." suffix, set SecFlagUniqSuffix flag
+ // so compiler won't strip the suffix during profile matching after
+ // seeing the flag in the profile.
+ for (const auto &I : NameTable) {
+ if (I.first.find(FunctionSamples::UniqSuffix) != StringRef::npos) {
+ addSectionFlag(SecNameTable, SecNameTableFlags::SecFlagUniqSuffix);
+ break;
+ }
+ }
+
if (auto EC = writeNameTable())
return EC;
return sampleprof_error::success;