LLVM  6.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
llvm::coverage::CoverageMapping Class Reference

The mapping of profile information to coverage data. More...

#include "llvm/ProfileData/Coverage/CoverageMapping.h"

Public Member Functions

 CoverageMapping (const CoverageMapping &)=delete
 
CoverageMappingoperator= (const CoverageMapping &)=delete
 
unsigned getMismatchedCount () const
 The number of functions that couldn't have their profiles mapped. More...
 
ArrayRef< std::pair< std::string, uint64_t > > getHashMismatches () const
 A hash mismatch occurs when a profile record for a symbol does not have the same hash as a coverage mapping record for the same symbol. More...
 
ArrayRef< std::pair< std::string, uint64_t > > getCounterMismatches () const
 A counter mismatch occurs when there is an error when evaluating the counter expressions in a coverage mapping record. More...
 
std::vector< StringRefgetUniqueSourceFiles () const
 Returns a lexicographically sorted, unique list of files that are covered. More...
 
CoverageData getCoverageForFile (StringRef Filename) const
 Get the coverage for a particular file. More...
 
CoverageData getCoverageForFunction (const FunctionRecord &Function) const
 Get the coverage for a particular function. More...
 
CoverageData getCoverageForExpansion (const ExpansionRecord &Expansion) const
 Get the coverage for an expansion within a coverage set. More...
 
iterator_range< FunctionRecordIteratorgetCoveredFunctions () const
 Gets all of the functions covered by this profile. More...
 
iterator_range< FunctionRecordIteratorgetCoveredFunctions (StringRef Filename) const
 Gets all of the functions in a particular file. More...
 
std::vector< InstantiationGroupgetInstantiationGroups (StringRef Filename) const
 Get the list of function instantiation groups in a particular file. More...
 

Static Public Member Functions

static Expected< std::unique_ptr< CoverageMapping > > load (ArrayRef< std::unique_ptr< CoverageMappingReader >> CoverageReaders, IndexedInstrProfReader &ProfileReader)
 Load the coverage mapping using the given readers. More...
 
static Expected< std::unique_ptr< CoverageMapping > > load (ArrayRef< StringRef > ObjectFilenames, StringRef ProfileFilename, ArrayRef< StringRef > Arches=None)
 Load the coverage mapping from the given object files and profile. More...
 

Detailed Description

The mapping of profile information to coverage data.

This is the main interface to get coverage information, using a profile to fill out execution counts.

Definition at line 508 of file CoverageMapping.h.

Constructor & Destructor Documentation

◆ CoverageMapping()

llvm::coverage::CoverageMapping::CoverageMapping ( const CoverageMapping )
delete

Member Function Documentation

◆ getCounterMismatches()

ArrayRef<std::pair<std::string, uint64_t> > llvm::coverage::CoverageMapping::getCounterMismatches ( ) const
inline

A counter mismatch occurs when there is an error when evaluating the counter expressions in a coverage mapping record.

This returns a list of counter mismatches, where each mismatch is a pair of the symbol name and the number of valid evaluated counter expressions.

Definition at line 555 of file CoverageMapping.h.

◆ getCoverageForExpansion()

CoverageData CoverageMapping::getCoverageForExpansion ( const ExpansionRecord Expansion) const

◆ getCoverageForFile()

CoverageData CoverageMapping::getCoverageForFile ( StringRef  Filename) const

Get the coverage for a particular file.

The given filename must be the name as recorded in the coverage information. That is, only names returned from getUniqueSourceFiles will yield a result.

Definition at line 593 of file CoverageMapping.cpp.

References llvm::dbgs(), DEBUG, findMainViewFileID(), gatherFileIDs(), and isExpansion().

◆ getCoverageForFunction()

CoverageData CoverageMapping::getCoverageForFunction ( const FunctionRecord Function) const

◆ getCoveredFunctions() [1/2]

iterator_range<FunctionRecordIterator> llvm::coverage::CoverageMapping::getCoveredFunctions ( ) const
inline

Gets all of the functions covered by this profile.

Definition at line 577 of file CoverageMapping.h.

References llvm::make_range().

◆ getCoveredFunctions() [2/2]

iterator_range<FunctionRecordIterator> llvm::coverage::CoverageMapping::getCoveredFunctions ( StringRef  Filename) const
inline

Gets all of the functions in a particular file.

Definition at line 584 of file CoverageMapping.h.

References LLVM_PACKED_START, and llvm::make_range().

◆ getHashMismatches()

ArrayRef<std::pair<std::string, uint64_t> > llvm::coverage::CoverageMapping::getHashMismatches ( ) const
inline

A hash mismatch occurs when a profile record for a symbol does not have the same hash as a coverage mapping record for the same symbol.

This returns a list of hash mismatches, where each mismatch is a pair of the symbol name and its coverage mapping hash.

Definition at line 547 of file CoverageMapping.h.

◆ getInstantiationGroups()

std::vector< InstantiationGroup > CoverageMapping::getInstantiationGroups ( StringRef  Filename) const

Get the list of function instantiation groups in a particular file.

Every instantiation group in a program is attributed to exactly one file: the file in which the definition for the common function begins.

Definition at line 615 of file CoverageMapping.cpp.

References findMainViewFileID().

◆ getMismatchedCount()

unsigned llvm::coverage::CoverageMapping::getMismatchedCount ( ) const
inline

The number of functions that couldn't have their profiles mapped.

This is a count of functions whose profile is out of date or otherwise can't be associated with any coverage information.

Definition at line 539 of file CoverageMapping.h.

◆ getUniqueSourceFiles()

std::vector< StringRef > CoverageMapping::getUniqueSourceFiles ( ) const

Returns a lexicographically sorted, unique list of files that are covered.

Definition at line 547 of file CoverageMapping.cpp.

References llvm::Function::begin(), llvm::Function::end(), and llvm::parallel::sort().

◆ load() [1/2]

Expected< std::unique_ptr< CoverageMapping > > CoverageMapping::load ( ArrayRef< std::unique_ptr< CoverageMappingReader >>  CoverageReaders,
IndexedInstrProfReader ProfileReader 
)
static

Load the coverage mapping using the given readers.

Definition at line 249 of file CoverageMapping.cpp.

References E.

◆ load() [2/2]

Expected< std::unique_ptr< CoverageMapping > > CoverageMapping::load ( ArrayRef< StringRef ObjectFilenames,
StringRef  ProfileFilename,
ArrayRef< StringRef Arches = None 
)
static

Load the coverage mapping from the given object files and profile.

If Arches is non-empty, it must specify an architecture for each object.

Definition at line 268 of file CoverageMapping.cpp.

References assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::sys::path::const_iterator::begin, llvm::sys::path::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MutableArrayRef< T >::begin(), llvm::coverage::CounterMappingRegion::CodeRegion, llvm::coverage::FunctionRecord::CountedRegions, llvm::coverage::BinaryCoverageReader::create(), llvm::IndexedInstrProfReader::create(), llvm::dbgs(), DEBUG, llvm::MutableArrayRef< T >::drop_back(), E, llvm::SmallVectorBase::empty(), llvm::ArrayRef< T >::empty(), llvm::sys::path::const_iterator::end, llvm::sys::path::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::WebAssembly::End, llvm::MutableArrayRef< T >::end(), llvm::coverage::CounterMappingRegion::endLoc(), llvm::enumerate(), llvm::SmallVectorImpl< T >::erase(), llvm::errorCodeToError(), llvm::coverage::CountedRegion::ExecutionCount, llvm::coverage::CounterMappingRegion::ExpansionRegion, llvm::ARMBuildAttrs::File, llvm::coverage::CounterMappingRegion::GapRegion, llvm::MemoryBuffer::getFileOrSTDIN(), I, llvm::coverage::CounterMappingRegion::Kind, llvm::None, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::ArrayRef< T >::size(), llvm::coverage::CounterMappingRegion::SkippedRegion, llvm::parallel::sort(), and llvm::coverage::CounterMappingRegion::startLoc().

◆ operator=()

CoverageMapping& llvm::coverage::CoverageMapping::operator= ( const CoverageMapping )
delete

The documentation for this class was generated from the following files: