LLVM  6.0.0svn
Public Types | Public Member Functions | List of all members
llvm::StringTableBuilder Class Reference

Utility for building string tables with deduplicated suffixes. More...

#include "llvm/MC/StringTableBuilder.h"

Public Types

enum  Kind { ELF, WinCOFF, MachO, RAW }
 

Public Member Functions

 StringTableBuilder (Kind K, unsigned Alignment=1)
 
 ~StringTableBuilder ()
 
size_t add (CachedHashStringRef S)
 Add a string to the builder. More...
 
size_t add (StringRef S)
 
void finalize ()
 Analyze the strings and build the final table. More...
 
void finalizeInOrder ()
 Finalize the string table without reording it. More...
 
size_t getOffset (CachedHashStringRef S) const
 Get the offest of a string in the string table. More...
 
size_t getOffset (StringRef S) const
 
size_t getSize () const
 
void clear ()
 
void write (raw_ostream &OS) const
 
void write (uint8_t *Buf) const
 

Detailed Description

Utility for building string tables with deduplicated suffixes.

Definition at line 24 of file StringTableBuilder.h.

Member Enumeration Documentation

◆ Kind

Enumerator
ELF 
WinCOFF 
MachO 
RAW 

Definition at line 26 of file StringTableBuilder.h.

Constructor & Destructor Documentation

◆ StringTableBuilder()

StringTableBuilder::StringTableBuilder ( Kind  K,
unsigned  Alignment = 1 
)

Definition at line 48 of file StringTableBuilder.cpp.

◆ ~StringTableBuilder()

StringTableBuilder::~StringTableBuilder ( )
default

Member Function Documentation

◆ add() [1/2]

size_t StringTableBuilder::add ( CachedHashStringRef  S)

Add a string to the builder.

Returns the position of S in the table. The position will be changed if finalize is used. Can only be used before the table is finalized.

Definition at line 175 of file StringTableBuilder.cpp.

References llvm::alignTo(), assert(), llvm::COFF::NameSize, P, RAW, llvm::CachedHashStringRef::size(), and WinCOFF.

Referenced by llvm::MachObjectWriter::computeSymbolTable(), getEncodedUnnamedAddr(), and llvm::WriteIndexToFile().

◆ add() [2/2]

size_t llvm::StringTableBuilder::add ( StringRef  S)
inline

Definition at line 46 of file StringTableBuilder.h.

References add(), finalize(), finalizeInOrder(), and getOffset().

Referenced by add().

◆ clear()

void StringTableBuilder::clear ( )

Definition at line 163 of file StringTableBuilder.cpp.

Referenced by getSize(), and llvm::MachObjectWriter::reset().

◆ finalize()

void StringTableBuilder::finalize ( )

Analyze the strings and build the final table.

No more strings can be added after this point.

Definition at line 118 of file StringTableBuilder.cpp.

Referenced by add(), and llvm::MachObjectWriter::computeSymbolTable().

◆ finalizeInOrder()

void StringTableBuilder::finalizeInOrder ( )

Finalize the string table without reording it.

In this mode, offsets returned by add will still be valid.

Definition at line 122 of file StringTableBuilder.cpp.

References llvm::alignTo(), llvm::StringRef::endswith(), MachO, multikeySort(), P, RAW, and llvm::StringRef::size().

Referenced by add(), and llvm::BitcodeWriter::writeStrtab().

◆ getOffset() [1/2]

size_t StringTableBuilder::getOffset ( CachedHashStringRef  S) const

Get the offest of a string in the string table.

Can only be used after the table is finalized.

Definition at line 168 of file StringTableBuilder.cpp.

References assert(), and I.

Referenced by add(), llvm::MachObjectWriter::computeSymbolTable(), and getOffset().

◆ getOffset() [2/2]

size_t llvm::StringTableBuilder::getOffset ( StringRef  S) const
inline

Definition at line 59 of file StringTableBuilder.h.

References getOffset().

◆ getSize()

size_t llvm::StringTableBuilder::getSize ( ) const
inline

◆ write() [1/2]

void StringTableBuilder::write ( raw_ostream OS) const

◆ write() [2/2]

void StringTableBuilder::write ( uint8_t *  Buf) const

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