diff options
Diffstat (limited to 'contrib/llvm/lib/ProfileData/InstrProf.cpp')
| -rw-r--r-- | contrib/llvm/lib/ProfileData/InstrProf.cpp | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/contrib/llvm/lib/ProfileData/InstrProf.cpp b/contrib/llvm/lib/ProfileData/InstrProf.cpp index 544a77ec20a5..aaa8000ff2f9 100644 --- a/contrib/llvm/lib/ProfileData/InstrProf.cpp +++ b/contrib/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);    }  | 
