LLVM  7.0.0svn
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
llvm::AccelTableBase Class Reference

A base class holding non-template-dependant functionality of the AccelTable class. More...

#include "llvm/CodeGen/AccelTable.h"

Inheritance diagram for llvm::AccelTableBase:
Inheritance graph
[legend]
Collaboration diagram for llvm::AccelTableBase:
Collaboration graph
[legend]

Classes

struct  HashData
 Represents a group of entries with identical name (and hence, hash value). More...
 

Public Types

using HashFn = uint32_t(StringRef)
 
using HashList = std::vector< HashData * >
 
using BucketList = std::vector< HashList >
 

Public Member Functions

void finalize (AsmPrinter *Asm, StringRef Prefix)
 
ArrayRef< HashListgetBuckets () const
 
uint32_t getBucketCount () const
 
uint32_t getUniqueHashCount () const
 
uint32_t getUniqueNameCount () const
 
void print (raw_ostream &OS) const
 
void dump () const
 
 AccelTableBase (const AccelTableBase &)=delete
 
void operator= (const AccelTableBase &)=delete
 

Protected Types

using StringEntries = StringMap< HashData, BumpPtrAllocator & >
 

Protected Member Functions

void computeBucketCount ()
 
 AccelTableBase (HashFn *Hash)
 

Protected Attributes

BumpPtrAllocator Allocator
 Allocator for HashData and Values. More...
 
StringEntries Entries
 
HashFnHash
 
uint32_t BucketCount
 
uint32_t UniqueHashCount
 
HashList Hashes
 
BucketList Buckets
 

Detailed Description

A base class holding non-template-dependant functionality of the AccelTable class.

Clients should not use this class directly but rather instantiate AccelTable with a type derived from AccelTableData.

Definition at line 138 of file AccelTable.h.

Member Typedef Documentation

◆ BucketList

Definition at line 158 of file AccelTable.h.

◆ HashFn

Definition at line 140 of file AccelTable.h.

◆ HashList

using llvm::AccelTableBase::HashList = std::vector<HashData *>

Definition at line 157 of file AccelTable.h.

◆ StringEntries

Definition at line 164 of file AccelTable.h.

Constructor & Destructor Documentation

◆ AccelTableBase() [1/2]

llvm::AccelTableBase::AccelTableBase ( HashFn Hash)
inlineprotected

Definition at line 176 of file AccelTable.h.

References llvm::HexStyle::Asm, finalize, and llvm::cl::Prefix.

◆ AccelTableBase() [2/2]

llvm::AccelTableBase::AccelTableBase ( const AccelTableBase )
delete

Member Function Documentation

◆ computeBucketCount()

void AccelTableBase::computeBucketCount ( )
protected

Definition at line 33 of file AccelTable.cpp.

References llvm::array_pod_sort(), BucketCount, E, Entries, P, llvm::StringMapImpl::size(), and UniqueHashCount.

Referenced by finalize().

◆ dump()

void llvm::AccelTableBase::dump ( ) const
inline

Definition at line 187 of file AccelTable.h.

References llvm::dbgs(), and llvm::AccelTableData::print().

Referenced by finalize().

◆ finalize()

void AccelTableBase::finalize ( AsmPrinter Asm,
StringRef  Prefix 
)

Definition at line 53 of file AccelTable.cpp.

References llvm::HexStyle::Asm, assert(), llvm::dwarf::AtomTypeString(), B, llvm::ArrayRef< T >::begin(), llvm::DIEInteger::BestForm(), BucketCount, Buckets, computeBucketCount(), llvm::AsmPrinter::createTempSymbol(), llvm::Data, llvm::StringRef::data(), llvm::dbgs(), dump(), llvm::dwarf::DW_hash_function_djb, E, llvm::AsmPrinter::emitDwarfStringOffset(), llvm::AsmPrinter::emitDwarfSymbolReference(), llvm::AsmPrinter::emitInt16(), llvm::AsmPrinter::emitInt32(), llvm::AsmPrinter::EmitLabelDifference(), llvm::AsmPrinter::EmitULEB128(), llvm::ArrayRef< T >::end(), Entries, llvm::enumerate(), llvm::dwarf::FormEncodingString(), getBucketCount(), llvm::DWARF5AccelTableData::getDie(), llvm::DwarfCompileUnit::getLabelBegin(), llvm::DIE::getOffset(), llvm::DwarfStringPoolEntryRef::getString(), llvm::DIE::getTag(), getUniqueHashCount(), getUniqueNameCount(), llvm::DIE::getUnitDie(), Hash, llvm::AccelTableBase::HashData::HashValue, llvm::dwarf::IndexString(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm_unreachable, Magic, llvm::max(), llvm::AsmPrinter::OutStreamer, print(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::ArrayRef< T >::size(), llvm::String, llvm::Tag, llvm::dwarf::TagString(), UniqueHashCount, and llvm::IndexedInstrProf::Version.

Referenced by llvm::emitAppleAccelTableImpl(), and llvm::emitDWARF5AccelTable().

◆ getBucketCount()

uint32_t llvm::AccelTableBase::getBucketCount ( ) const
inline

Definition at line 181 of file AccelTable.h.

Referenced by finalize().

◆ getBuckets()

ArrayRef<HashList> llvm::AccelTableBase::getBuckets ( ) const
inline

Definition at line 180 of file AccelTable.h.

◆ getUniqueHashCount()

uint32_t llvm::AccelTableBase::getUniqueHashCount ( ) const
inline

Definition at line 182 of file AccelTable.h.

Referenced by finalize().

◆ getUniqueNameCount()

uint32_t llvm::AccelTableBase::getUniqueNameCount ( ) const
inline

Definition at line 183 of file AccelTable.h.

References llvm::AccelTableData::print(), and llvm::StringMapImpl::size().

Referenced by finalize().

◆ operator=()

void llvm::AccelTableBase::operator= ( const AccelTableBase )
delete

◆ print()

void AccelTableBase::print ( raw_ostream OS) const

Member Data Documentation

◆ Allocator

BumpPtrAllocator llvm::AccelTableBase::Allocator
protected

Allocator for HashData and Values.

Definition at line 162 of file AccelTable.h.

◆ BucketCount

uint32_t llvm::AccelTableBase::BucketCount
protected

◆ Buckets

BucketList llvm::AccelTableBase::Buckets
protected

Definition at line 172 of file AccelTable.h.

Referenced by finalize(), and print().

◆ Entries

StringEntries llvm::AccelTableBase::Entries
protected

Definition at line 165 of file AccelTable.h.

Referenced by computeBucketCount(), finalize(), and print().

◆ Hash

HashFn* llvm::AccelTableBase::Hash
protected

Definition at line 167 of file AccelTable.h.

Referenced by finalize(), and print().

◆ Hashes

HashList llvm::AccelTableBase::Hashes
protected

Definition at line 171 of file AccelTable.h.

◆ UniqueHashCount

uint32_t llvm::AccelTableBase::UniqueHashCount
protected

Definition at line 169 of file AccelTable.h.

Referenced by computeBucketCount(), and finalize().


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