LLVM 17.0.0git
Classes | Public Member Functions | List of all members
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:
Inheritance graph
[legend]

Classes

class  Entry
 Apple-specific implementation of an Accelerator Entry. More...
 
class  ValueIterator
 

Public Member Functions

 AppleAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection)
 
Error extract () override
 
uint32_t getNumBuckets ()
 
uint32_t getNumHashes ()
 
uint32_t getSizeHdr ()
 
uint32_t getHeaderDataLength ()
 
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 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< ValueIteratorequal_range (StringRef Key) const
 Look up all entries in the accelerator table matching Key.
 
- Public Member Functions inherited from llvm::DWARFAcceleratorTable
 DWARFAcceleratorTable (const DWARFDataExtractor &AccelSection, DataExtractor StringSection)
 
virtual ~DWARFAcceleratorTable ()
 
virtual Error extract ()=0
 
virtual void dump (raw_ostream &OS) const =0
 
 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 83 of file DWARFAcceleratorTable.h.

Constructor & Destructor Documentation

◆ AppleAcceleratorTable()

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

Definition at line 181 of file DWARFAcceleratorTable.h.

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void AppleAcceleratorTable::dump ( raw_ostream OS) const
overridevirtual

◆ equal_range()

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

◆ extract()

Error AppleAcceleratorTable::extract ( )
overridevirtual

◆ 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 90 of file DWARFAcceleratorTable.cpp.

Referenced by readAtoms(), and validateForms().

◆ getHeaderDataLength()

uint32_t AppleAcceleratorTable::getHeaderDataLength ( )

Definition at line 84 of file DWARFAcceleratorTable.cpp.

◆ getNumBuckets()

uint32_t AppleAcceleratorTable::getNumBuckets ( )

Definition at line 81 of file DWARFAcceleratorTable.cpp.

◆ getNumHashes()

uint32_t AppleAcceleratorTable::getNumHashes ( )

Definition at line 82 of file DWARFAcceleratorTable.cpp.

◆ getSizeHdr()

uint32_t AppleAcceleratorTable::getSizeHdr ( )

Definition at line 83 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 114 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::dwarf::DWARF32, llvm::DWARFFormValue::extractValue(), llvm::DWARFFormValue::getAsUnsignedConstant(), and getAtomsDesc().

◆ validateForms()

bool AppleAcceleratorTable::validateForms ( )

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