LLVM: lib/DWP/DWP.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Functions
static uint64_t debugStrOffsetsHeaderSize (DataExtractor StrOffsetsData, uint16_t DwarfVersion)
static uint64_t getCUAbbrev (StringRef Abbrev, uint64_t AbbrCode)
static Expected< const char * > getIndexedString (dwarf::Form Form, DataExtractor InfoData, uint64_t &InfoOffset, StringRef StrOffsets, StringRef Str, uint16_t Version)
static Expected< CompileUnitIdentifiers > getCUIdentifiers (InfoSectionUnitHeader &Header, StringRef Abbrev, StringRef Info, StringRef StrOffsets, StringRef Str)
static bool isSupportedSectionKind (DWARFSectionKind Kind)
static unsigned getContributionIndex (DWARFSectionKind Kind, uint32_t IndexVersion)
static unsigned getOnDiskSectionId (unsigned Index)
static StringRef getSubsection (StringRef Section, const DWARFUnitIndex::Entry &Entry, DWARFSectionKind Kind)
static Error sectionOverflowErrorOrWarning (uint32_t PrevOffset, uint32_t OverflowedOffset, StringRef SectionName, OnCuIndexOverflow OverflowOptValue, bool &AnySectionOverflow)
static Error addAllTypesFromDWP (MCStreamer &Out, MapVector< uint64_t, UnitIndexEntry > &TypeIndexEntries, const DWARFUnitIndex &TUIndex, MCSection *OutputTypes, StringRef Types, const UnitIndexEntry &TUEntry, uint32_t &TypesOffset, unsigned TypesContributionIndex, OnCuIndexOverflow OverflowOptValue, bool &AnySectionOverflow)
static Error addAllTypesFromTypesSection (MCStreamer &Out, MapVector< uint64_t, UnitIndexEntry > &TypeIndexEntries, MCSection *OutputTypes, const std::vector< StringRef > &TypesSections, const UnitIndexEntry &CUEntry, uint32_t &TypesOffset, OnCuIndexOverflow OverflowOptValue, bool &AnySectionOverflow)
static std::string buildDWODescription (StringRef Name, StringRef DWPName, StringRef DWOName)
static Error createError (StringRef Name, Error E)
static Error handleCompressedSection (std::deque< SmallString< 32 > > &UncompressedSections, SectionRef Sec, StringRef Name, StringRef &Contents)
LLVM_ABI Expected< InfoSectionUnitHeader > llvm::parseInfoSectionUnitHeader (StringRef Info)
static void llvm::writeNewOffsetsTo (MCStreamer &Out, DataExtractor &Data, DenseMap< uint64_t, uint64_t > &OffsetRemapping, uint64_t &Offset, const uint64_t Size, uint32_t OldOffsetSize, uint32_t NewOffsetSize)
void llvm::writeStringsAndOffsets (MCStreamer &Out, DWPStringPool &Strings, MCSection *StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version, SectionLengths &SectionLength, const Dwarf64StrOffsetsPromotion StrOffsetsOptValue)
void llvm::writeIndexTable (MCStreamer &Out, ArrayRef< unsigned > ContributionOffsets, const MapVector< uint64_t, UnitIndexEntry > &IndexEntries, const AccessField &Field)
LLVM_ABI void llvm::writeIndex (MCStreamer &Out, MCSection *Section, ArrayRef< unsigned > ContributionOffsets, const MapVector< uint64_t, UnitIndexEntry > &IndexEntries, uint32_t IndexVersion)
LLVM_ABI Error llvm::buildDuplicateError (const std::pair< uint64_t, UnitIndexEntry > &PrevE, const CompileUnitIdentifiers &ID, StringRef DWPName)
LLVM_ABI Error llvm::handleSection (const StringMap< std::pair< MCSection *, DWARFSectionKind > > &KnownSections, const MCSection *StrSection, const MCSection *StrOffsetSection, const MCSection *TypesSection, const MCSection *CUIndexSection, const MCSection *TUIndexSection, const MCSection *InfoSection, const object::SectionRef &Section, MCStreamer &Out, std::deque< SmallString< 32 > > &UncompressedSections, uint32_t(&ContributionOffsets)[8], UnitIndexEntry &CurEntry, StringRef &CurStrSection, StringRef &CurStrOffsetSection, std::vector< StringRef > &CurTypesSection, std::vector< StringRef > &CurInfoSection, StringRef &AbbrevSection, StringRef &CurCUIndexSection, StringRef &CurTUIndexSection, SectionLengths &SectionLength)
LLVM_ABI Error llvm::write (MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue, Dwarf64StrOffsetsPromotion StrOffsetsOptValue)

addAllTypesFromDWP()

Error addAllTypesFromDWP ( MCStreamer & Out, MapVector< uint64_t, UnitIndexEntry > & TypeIndexEntries, const DWARFUnitIndex & TUIndex, MCSection * OutputTypes, StringRef Types, const UnitIndexEntry & TUEntry, uint32_t & TypesOffset, unsigned TypesContributionIndex, OnCuIndexOverflow OverflowOptValue, bool & AnySectionOverflow ) static

Definition at line 202 of file DWP.cpp.

References llvm::CallingConv::C, llvm::UnitIndexEntry::Contributions, E(), llvm::MCStreamer::emitBytes(), llvm::DWARFUnitIndex::getColumnKinds(), getContributionIndex(), llvm::DWARFUnitIndex::Entry::SectionContribution::getOffset(), llvm::DWARFUnitIndex::getRows(), llvm::DWARFUnitIndex::getVersion(), I, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), isSupportedSectionKind(), P, sectionOverflowErrorOrWarning(), llvm::Error::success(), and llvm::MCStreamer::switchSection().

Referenced by llvm::write().

addAllTypesFromTypesSection()

Definition at line 251 of file DWP.cpp.

References llvm::CallingConv::C, llvm::UnitIndexEntry::Contributions, llvm::Data, llvm::DW_SECT_EXT_TYPES, llvm::MCStreamer::emitBytes(), getContributionIndex(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), llvm::Offset, P, sectionOverflowErrorOrWarning(), llvm::Error::success(), and llvm::MCStreamer::switchSection().

Referenced by llvm::write().

buildDWODescription()

createError()

debugStrOffsetsHeaderSize()

getContributionIndex()

getCUAbbrev()

getCUIdentifiers()

Definition at line 94 of file DWP.cpp.

References getCUAbbrev(), getIndexedString(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), llvm::DataExtractor::getULEB128(), Info, llvm::make_error(), llvm::Offset, llvm::DWARFFormValue::skipValue(), llvm::Expected< T >::takeError(), and llvm::utostr().

Referenced by llvm::write().

getIndexedString()

getOnDiskSectionId()

getSubsection()

handleCompressedSection()

Definition at line 332 of file DWP.cpp.

References llvm::StringRef::back(), llvm::object::Decompressor::create(), llvm::object::createError(), llvm::dyn_cast(), E(), getFlags(), llvm::object::SectionRef::getObject(), llvm::isa(), llvm::ELF::SHF_COMPRESSED, llvm::Error::success(), and llvm::Expected< T >::takeError().

Referenced by llvm::handleSection().

isSupportedSectionKind()

sectionOverflowErrorOrWarning()

MCTargetOptionsFlags