mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Coverage code refactoring /NFC
llvm-svn: 255670
This commit is contained in:
parent
621a2ef540
commit
4bfffacc8b
@ -156,6 +156,10 @@ GlobalVariable *createPGOFuncNameVar(Module &M,
|
||||
GlobalValue::LinkageTypes Linkage,
|
||||
StringRef FuncName);
|
||||
|
||||
/// Given a PGO function name, remove the filename prefix and return
|
||||
/// the original (static) function name.
|
||||
StringRef getFuncNameWithoutPrefix(StringRef PGOFuncName, StringRef FileName);
|
||||
|
||||
const std::error_category &instrprof_category();
|
||||
|
||||
enum class instrprof_error {
|
||||
|
@ -181,18 +181,6 @@ void FunctionRecordIterator::skipOtherFiles() {
|
||||
*this = FunctionRecordIterator();
|
||||
}
|
||||
|
||||
/// Get the function name from the record, removing the filename prefix if
|
||||
/// necessary.
|
||||
static StringRef getFuncNameWithoutPrefix(const CoverageMappingRecord &Record) {
|
||||
StringRef FunctionName = Record.FunctionName;
|
||||
if (Record.Filenames.empty())
|
||||
return FunctionName;
|
||||
StringRef Filename = sys::path::filename(Record.Filenames[0]);
|
||||
if (FunctionName.startswith(Filename))
|
||||
FunctionName = FunctionName.drop_front(Filename.size() + 1);
|
||||
return FunctionName;
|
||||
}
|
||||
|
||||
ErrorOr<std::unique_ptr<CoverageMapping>>
|
||||
CoverageMapping::load(CoverageMappingReader &CoverageReader,
|
||||
IndexedInstrProfReader &ProfileReader) {
|
||||
@ -216,7 +204,11 @@ CoverageMapping::load(CoverageMappingReader &CoverageReader,
|
||||
|
||||
assert(!Record.MappingRegions.empty() && "Function has no regions");
|
||||
|
||||
FunctionRecord Function(getFuncNameWithoutPrefix(Record), Record.Filenames);
|
||||
StringRef OrigFuncName = Record.FunctionName;
|
||||
if (!Record.Filenames.empty())
|
||||
OrigFuncName =
|
||||
getFuncNameWithoutPrefix(OrigFuncName, Record.Filenames[0]);
|
||||
FunctionRecord Function(OrigFuncName, Record.Filenames);
|
||||
for (const auto &Region : Record.MappingRegions) {
|
||||
ErrorOr<int64_t> ExecutionCount = Ctx.evaluate(Region.Count);
|
||||
if (!ExecutionCount)
|
||||
|
@ -102,6 +102,15 @@ std::string getPGOFuncName(const Function &F, uint64_t Version) {
|
||||
Version);
|
||||
}
|
||||
|
||||
StringRef getFuncNameWithoutPrefix(StringRef PGOFuncName, StringRef FileName) {
|
||||
if (FileName.empty())
|
||||
return PGOFuncName;
|
||||
// Drop the file name including ':'. See also getPGOFuncName.
|
||||
if (PGOFuncName.startswith(FileName))
|
||||
PGOFuncName = PGOFuncName.drop_front(FileName.size() + 1);
|
||||
return PGOFuncName;
|
||||
}
|
||||
|
||||
// \p FuncName is the string used as profile lookup key for the function. A
|
||||
// symbol is created to hold the name. Return the legalized symbol name.
|
||||
static std::string getPGOFuncNameVarName(StringRef FuncName,
|
||||
|
Loading…
x
Reference in New Issue
Block a user