LLVM  6.0.0svn
Classes | Public Member Functions | List of all members
llvm::DWARFAcceleratorTable Class Reference

This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format. More...

#include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"

Classes

class  ValueIterator
 An iterator for the entries associated with one key. More...
 

Public Member Functions

 DWARFAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection)
 
bool extract ()
 
uint32_t getNumBuckets ()
 
uint32_t getNumHashes ()
 
uint32_t getSizeHdr ()
 
uint32_t getHeaderDataLength ()
 
ArrayRef< std::pair< HeaderData::AtomType, HeaderData::Form > > getAtomsDesc ()
 
bool validateForms ()
 
std::pair< uint32_t, dwarf::TagreadAtoms (uint32_t &HashDataOffset)
 Return information related to the DWARF DIE we're looking for when performing a lookup by name. More...
 
void dump (raw_ostream &OS) const
 
iterator_range< ValueIteratorequal_range (StringRef Key) const
 Look up all entries in the accelerator table matching Key. More...
 

Detailed Description

This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format.

TODO: Factor out a common base class for both formats.

Definition at line 27 of file DWARFAcceleratorTable.h.

Constructor & Destructor Documentation

◆ DWARFAcceleratorTable()

llvm::DWARFAcceleratorTable::DWARFAcceleratorTable ( const DWARFDataExtractor AccelSection,
DataExtractor  StringSection 
)
inline

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void DWARFAcceleratorTable::dump ( raw_ostream OS) const

◆ equal_range()

iterator_range< DWARFAcceleratorTable::ValueIterator > DWARFAcceleratorTable::equal_range ( StringRef  Key) const

Look up all entries in the accelerator table matching Key.

Definition at line 225 of file DWARFAcceleratorTable.cpp.

References llvm::dwarf::djbHash(), llvm::make_range(), and llvm::DWARFAcceleratorTable::ValueIterator::ValueIterator().

Referenced by DWARFAcceleratorTable().

◆ extract()

bool DWARFAcceleratorTable::extract ( )

◆ getAtomsDesc()

ArrayRef< std::pair< DWARFAcceleratorTable::HeaderData::AtomType, DWARFAcceleratorTable::HeaderData::Form > > DWARFAcceleratorTable::getAtomsDesc ( )

Definition at line 67 of file DWARFAcceleratorTable.cpp.

Referenced by DWARFAcceleratorTable(), readAtoms(), and validateForms().

◆ getHeaderDataLength()

uint32_t DWARFAcceleratorTable::getHeaderDataLength ( )

Definition at line 61 of file DWARFAcceleratorTable.cpp.

Referenced by DWARFAcceleratorTable().

◆ getNumBuckets()

uint32_t DWARFAcceleratorTable::getNumBuckets ( )

Definition at line 58 of file DWARFAcceleratorTable.cpp.

Referenced by DWARFAcceleratorTable().

◆ getNumHashes()

uint32_t DWARFAcceleratorTable::getNumHashes ( )

Definition at line 59 of file DWARFAcceleratorTable.cpp.

Referenced by DWARFAcceleratorTable().

◆ getSizeHdr()

uint32_t DWARFAcceleratorTable::getSizeHdr ( )

Definition at line 60 of file DWARFAcceleratorTable.cpp.

Referenced by DWARFAcceleratorTable().

◆ readAtoms()

std::pair< uint32_t, dwarf::Tag > DWARFAcceleratorTable::readAtoms ( uint32_t HashDataOffset)

Return information related to the DWARF DIE we're looking for when performing a lookup by name.

Parameters
HashDataOffsetan offset into the hash data table
Returns
<DieOffset, DieTag> DieOffset is the offset into the .debug_info section for the DIE related to the input hash data offset. DieTag is the tag of the DIE

Definition at line 90 of file DWARFAcceleratorTable.cpp.

References llvm::dwarf::DW_ATOM_die_offset, llvm::dwarf::DW_ATOM_die_tag, llvm::dwarf::DW_INVALID_OFFSET, llvm::DWARFFormValue::extractValue(), llvm::DWARFFormValue::getAsUnsignedConstant(), and getAtomsDesc().

Referenced by DWARFAcceleratorTable().

◆ validateForms()

bool DWARFAcceleratorTable::validateForms ( )

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