LLVM 22.0.0git
llvm::AppleAcceleratorTable 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"

Inheritance diagram for llvm::AppleAcceleratorTable:
[legend]

Classes

class  Entry
 Apple-specific implementation of an Accelerator Entry. More...
struct  EntryWithName
class  Iterator
 An iterator for all entries in the table. More...
class  SameNameIterator
 An iterator for Entries all having the same string as key. More...

Public Member Functions

 AppleAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection)
Error extract () override
uint32_t getNumBuckets () const
uint32_t getNumHashes () const
uint32_t getSizeHdr () const
uint32_t getHeaderDataLength () const
uint32_t getHashDataEntryLength () const
 Returns the size of one HashData entry.
ArrayRef< std::pair< HeaderData::AtomType, HeaderData::Form > > getAtomsDesc ()
 Return the Atom description, which can be used to interpret the raw values of the Accelerator Entries in this table.
bool containsAtomType (HeaderData::AtomType AtomTy) const
 Returns true iff AtomTy is one of the atoms available in Entries of this table.
bool validateForms ()
std::pair< uint64_t, dwarf::TagreadAtoms (uint64_t *HashDataOffset)
 Return information related to the DWARF DIE we're looking for when performing a lookup by name.
void dump (raw_ostream &OS) const override
iterator_range< SameNameIteratorequal_range (StringRef Key) const
 Look up all entries in the accelerator table matching Key.
auto entries () const
 Lookup all entries in the accelerator table.
Public Member Functions inherited from llvm::DWARFAcceleratorTable
 DWARFAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection)
virtual ~DWARFAcceleratorTable ()
 DWARFAcceleratorTable (const DWARFAcceleratorTable &)=delete
void operator= (const DWARFAcceleratorTable &)=delete

Additional Inherited Members

Protected Attributes inherited from llvm::DWARFAcceleratorTable
DWARFDataExtractor AccelSection
DataExtractor StringSection

Detailed Description

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

Definition at line 101 of file DWARFAcceleratorTable.h.

Constructor & Destructor Documentation

◆ AppleAcceleratorTable()

Member Function Documentation

◆ containsAtomType()

bool llvm::AppleAcceleratorTable::containsAtomType ( HeaderData::AtomType AtomTy) const
inline

Returns true iff AtomTy is one of the atoms available in Entries of this table.

Definition at line 337 of file DWARFAcceleratorTable.h.

References llvm::is_contained(), and llvm::make_first_range().

◆ dump()

◆ entries()

auto llvm::AppleAcceleratorTable::entries ( ) const
inline

Lookup all entries in the accelerator table.

Definition at line 358 of file DWARFAcceleratorTable.h.

References llvm::make_range().

◆ equal_range()

◆ extract()

◆ getAtomsDesc()

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

Return the Atom description, which can be used to interpret the raw values of the Accelerator Entries in this table.

Definition at line 103 of file DWARFAcceleratorTable.cpp.

Referenced by readAtoms(), and validateForms().

◆ getHashDataEntryLength()

uint32_t llvm::AppleAcceleratorTable::getHashDataEntryLength ( ) const
inline

Returns the size of one HashData entry.

Definition at line 329 of file DWARFAcceleratorTable.h.

Referenced by dump(), and equal_range().

◆ getHeaderDataLength()

uint32_t AppleAcceleratorTable::getHeaderDataLength ( ) const

Definition at line 97 of file DWARFAcceleratorTable.cpp.

◆ getNumBuckets()

uint32_t AppleAcceleratorTable::getNumBuckets ( ) const

Definition at line 92 of file DWARFAcceleratorTable.cpp.

◆ getNumHashes()

uint32_t AppleAcceleratorTable::getNumHashes ( ) const

Definition at line 95 of file DWARFAcceleratorTable.cpp.

◆ getSizeHdr()

uint32_t AppleAcceleratorTable::getSizeHdr ( ) const

Definition at line 96 of file DWARFAcceleratorTable.cpp.

◆ readAtoms()

std::pair< uint64_t, dwarf::Tag > AppleAcceleratorTable::readAtoms ( uint64_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 127 of file DWARFAcceleratorTable.cpp.

References llvm::DWARFAcceleratorTable::AccelSection, 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().

◆ validateForms()


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