LLVM 19.0.0git
Classes | Macros | Functions | Variables
CoverageMappingReader.cpp File Reference
#include "llvm/ProfileData/Coverage/CoverageMappingReader.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Object/Archive.h"
#include "llvm/Object/Binary.h"
#include "llvm/Object/COFF.h"
#include "llvm/Object/Error.h"
#include "llvm/Object/MachOUniversal.h"
#include "llvm/Object/ObjectFile.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/Triple.h"
#include <vector>

Go to the source code of this file.


struct  FilenameRange
 A range of filename indices. More...


#define DEBUG_TYPE   "coverage-mapping"


 STATISTIC (CovMapNumRecords, "The # of coverage function records")
 STATISTIC (CovMapNumUsedRecords, "The # of used coverage function records")
static Expected< boolisCoverageMappingDummy (uint64_t Hash, StringRef Mapping)
template<typename T , llvm::endianness Endian>
static Error readCoverageMappingData (InstrProfSymtab &ProfileNames, StringRef CovMap, StringRef FuncRecords, std::vector< BinaryCoverageReader::ProfileMappingRecord > &Records, StringRef CompilationDir, std::vector< std::string > &Filenames)
static Expected< std::unique_ptr< BinaryCoverageReader > > loadTestingFormat (StringRef Data, StringRef CompilationDir)
static Expected< std::vector< SectionRef > > lookupSections (ObjectFile &OF, InstrProfSectKind IPSK)
 Find all sections that match IPSK name.
static Expected< std::unique_ptr< BinaryCoverageReader > > loadBinaryFormat (std::unique_ptr< Binary > Bin, StringRef Arch, StringRef CompilationDir="", object::BuildIDRef *BinaryID=nullptr)
static bool isArchSpecifierInvalidOrMissing (Binary *Bin, StringRef Arch)
 Determine whether Arch is invalid or empty, given Bin.


static const unsigned EncodingExpansionRegionBit

Macro Definition Documentation


#define DEBUG_TYPE   "coverage-mapping"

Definition at line 45 of file CoverageMappingReader.cpp.

Function Documentation

◆ isArchSpecifierInvalidOrMissing()

static bool isArchSpecifierInvalidOrMissing ( Binary Bin,
StringRef  Arch 

Determine whether Arch is invalid or empty, given Bin.

Definition at line 1190 of file CoverageMappingReader.cpp.

References llvm::Bin.

Referenced by llvm::coverage::BinaryCoverageReader::create().

◆ isCoverageMappingDummy()

static Expected< bool > isCoverageMappingDummy ( uint64_t  Hash,
StringRef  Mapping 

◆ loadBinaryFormat()

static Expected< std::unique_ptr< BinaryCoverageReader > > loadBinaryFormat ( std::unique_ptr< Binary Bin,
StringRef  Arch,
StringRef  CompilationDir = "",
object::BuildIDRef BinaryID = nullptr 

◆ loadTestingFormat()

static Expected< std::unique_ptr< BinaryCoverageReader > > loadTestingFormat ( StringRef  Data,
StringRef  CompilationDir 

◆ lookupSections()

static Expected< std::vector< SectionRef > > lookupSections ( ObjectFile OF,
InstrProfSectKind  IPSK 

Find all sections that match IPSK name.

There may be more than one if comdats are in use, e.g. for the __llvm_covfun section on ELF.

Definition at line 1045 of file CoverageMappingReader.cpp.

References llvm::getInstrProfSectionName(), llvm::object::Binary::getTripleObjectFormat(), N, Name, llvm::coverage::no_data_found, llvm::object::ObjectFile::sections(), and llvm::Expected< T >::takeError().

Referenced by loadBinaryFormat().

◆ readCoverageMappingData()

template<typename T , llvm::endianness Endian>
static Error readCoverageMappingData ( InstrProfSymtab ProfileNames,
StringRef  CovMap,
StringRef  FuncRecords,
std::vector< BinaryCoverageReader::ProfileMappingRecord > &  Records,
StringRef  CompilationDir,
std::vector< std::string > &  Filenames 

◆ STATISTIC() [1/2]

STATISTIC ( CovMapNumRecords  ,
"The # of coverage function records"   

◆ STATISTIC() [2/2]

STATISTIC ( CovMapNumUsedRecords  ,
"The # of used coverage function records"   

Variable Documentation

◆ EncodingExpansionRegionBit

const unsigned EncodingExpansionRegionBit
Initial value:
= 1
static const unsigned EncodingTagBits

Definition at line 232 of file CoverageMappingReader.cpp.