diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/ProfileData/InstrProf.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/ProfileData/InstrProf.cpp b/llvm/lib/ProfileData/InstrProf.cpp index df3f8fade3b..3c752699a27 100644 --- a/llvm/lib/ProfileData/InstrProf.cpp +++ b/llvm/lib/ProfileData/InstrProf.cpp @@ -197,14 +197,18 @@ int collectPGOFuncNameStrings(const std::vector<std::string> &NameStrs, return 0; } +StringRef getPGOFuncNameInitializer(GlobalVariable *NameVar) { + auto *Arr = cast<ConstantDataArray>(NameVar->getInitializer()); + StringRef NameStr = + Arr->isCString() ? Arr->getAsCString() : Arr->getAsString(); + return NameStr; +} + int collectPGOFuncNameStrings(const std::vector<GlobalVariable *> &NameVars, std::string &Result) { std::vector<std::string> NameStrs; for (auto *NameVar : NameVars) { - auto *Arr = cast<ConstantDataArray>(NameVar->getInitializer()); - StringRef NameStr = - Arr->isCString() ? Arr->getAsCString() : Arr->getAsString(); - NameStrs.push_back(NameStr.str()); + NameStrs.push_back(getPGOFuncNameInitializer(NameVar)); } return collectPGOFuncNameStrings(NameStrs, zlib::isAvailable(), Result); } |