diff options
| author | 2019-06-23 21:36:31 +0000 | |
|---|---|---|
| committer | 2019-06-23 21:36:31 +0000 | |
| commit | 23f101f37937a1bd4a29726cab2f76e0fb038b35 (patch) | |
| tree | f7da7d6b32c2e07114da399150bfa88d72187012 /gnu/llvm/lib/ProfileData/InstrProf.cpp | |
| parent | sort previous; ok deraadt (diff) | |
| download | wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.tar.xz wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.zip | |
Import LLVM 8.0.0 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/ProfileData/InstrProf.cpp')
| -rw-r--r-- | gnu/llvm/lib/ProfileData/InstrProf.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gnu/llvm/lib/ProfileData/InstrProf.cpp b/gnu/llvm/lib/ProfileData/InstrProf.cpp index 544a77ec20a..aaa8000ff2f 100644 --- a/gnu/llvm/lib/ProfileData/InstrProf.cpp +++ b/gnu/llvm/lib/ProfileData/InstrProf.cpp @@ -252,11 +252,12 @@ static StringRef stripDirPrefix(StringRef PathNameStr, uint32_t NumPrefix) { // data, its original linkage must be non-internal. std::string getPGOFuncName(const Function &F, bool InLTO, uint64_t Version) { if (!InLTO) { - StringRef FileName = (StaticFuncFullModulePrefix - ? F.getParent()->getName() - : sys::path::filename(F.getParent()->getName())); - if (StaticFuncFullModulePrefix && StaticFuncStripDirNamePrefix != 0) - FileName = stripDirPrefix(FileName, StaticFuncStripDirNamePrefix); + StringRef FileName(F.getParent()->getSourceFileName()); + uint32_t StripLevel = StaticFuncFullModulePrefix ? 0 : (uint32_t)-1; + if (StripLevel < StaticFuncStripDirNamePrefix) + StripLevel = StaticFuncStripDirNamePrefix; + if (StripLevel) + FileName = stripDirPrefix(FileName, StripLevel); return getPGOFuncName(F.getName(), F.getLinkage(), FileName, Version); } |
