LLVM  8.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 35 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 
)

◆ 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

Definition at line 684 of file AccelTable.cpp.

References Buckets, E, Entries, and Hash.

Referenced by finalize(), and llvm::AppleAccelTableData::Atom::print().

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: