LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::ValueSymbolTable Class Reference

#include <ValueSymbolTable.h>

Collaboration diagram for llvm::ValueSymbolTable:

Collaboration graph
[legend]
List of all members.

Public Types

Types
typedef StringMap< Value * > ValueMap
 A mapping of names to values.
typedef ValueMap::iterator iterator
 An iterator over a ValueMap.
typedef ValueMap::const_iterator const_iterator
 A const_iterator over a ValueMap.

Public Member Functions

Constructors
 ValueSymbolTable ()
 ~ValueSymbolTable ()
Accessors
Valuelookup (const std::string &name) const
 Lookup a named Value.
Valuelookup (const char *NameBegin, const char *NameEnd) const
bool empty () const
 Determine if the symbol table is empty.
unsigned size () const
 The number of name/type pairs is returned.
void dump () const
 Print out symbol table on stderr.
Iteration
iterator begin ()
 Get an iterator that from the beginning of the symbol table.
const_iterator begin () const
 Get a const_iterator that from the beginning of the symbol table.
iterator end ()
 Get an iterator to the end of the symbol table.
const_iterator end () const
 Get a const_iterator to the end of the symbol table.

Friends

class Value
class SymbolTableListTraits<Argument, Function>
class SymbolTableListTraits<BasicBlock, Function>
class SymbolTableListTraits<Instruction, BasicBlock>
class SymbolTableListTraits<Function, Module>
class SymbolTableListTraits<GlobalVariable, Module>
class SymbolTableListTraits<GlobalAlias, Module>

Detailed Description

This class provides a symbol table of name/value pairs. It is essentially a std::map<std::string,Value*> but has a controlled interface provided by LLVM as well as ensuring uniqueness of names.

Definition at line 32 of file ValueSymbolTable.h.


Member Typedef Documentation

typedef ValueMap::const_iterator llvm::ValueSymbolTable::const_iterator
 

A const_iterator over a ValueMap.

Definition at line 50 of file ValueSymbolTable.h.

Referenced by dump(), and lookup().

typedef ValueMap::iterator llvm::ValueSymbolTable::iterator
 

An iterator over a ValueMap.

Definition at line 47 of file ValueSymbolTable.h.

Referenced by ~ValueSymbolTable().

typedef StringMap<Value*> llvm::ValueSymbolTable::ValueMap
 

A mapping of names to values.

Definition at line 44 of file ValueSymbolTable.h.


Constructor & Destructor Documentation

llvm::ValueSymbolTable::ValueSymbolTable  )  [inline]
 

Definition at line 57 of file ValueSymbolTable.h.

ValueSymbolTable::~ValueSymbolTable  ) 
 

Definition at line 23 of file ValueSymbolTable.cpp.

References llvm::StringMap< ValueTy, AllocatorTy >::begin(), llvm::StringMapImpl::empty(), llvm::StringMap< ValueTy, AllocatorTy >::end(), and iterator.


Member Function Documentation

const_iterator llvm::ValueSymbolTable::begin  )  const [inline]
 

Get a const_iterator that from the beginning of the symbol table.

Definition at line 92 of file ValueSymbolTable.h.

iterator llvm::ValueSymbolTable::begin  )  [inline]
 

Get an iterator that from the beginning of the symbol table.

Definition at line 89 of file ValueSymbolTable.h.

Referenced by dump(), StripSymtab(), and WriteValueSymbolTable().

void ValueSymbolTable::dump  )  const
 

Print out symbol table on stderr.

This function can be used from the debugger to display the content of the symbol table while debugging.

Definition at line 128 of file ValueSymbolTable.cpp.

References begin(), const_iterator, llvm::Value::dump(), end(), and llvm::StringMapEntry< ValueTy >::getValue().

bool llvm::ValueSymbolTable::empty  )  const [inline]
 

Determine if the symbol table is empty.

Returns:
true iff the symbol table is empty

Definition at line 74 of file ValueSymbolTable.h.

Referenced by WriteValueSymbolTable().

const_iterator llvm::ValueSymbolTable::end  )  const [inline]
 

Get a const_iterator to the end of the symbol table.

Definition at line 98 of file ValueSymbolTable.h.

iterator llvm::ValueSymbolTable::end  )  [inline]
 

Get an iterator to the end of the symbol table.

Definition at line 95 of file ValueSymbolTable.h.

Referenced by dump(), StripSymtab(), and WriteValueSymbolTable().

Value * ValueSymbolTable::lookup const char *  NameBegin,
const char *  NameEnd
const
 

Definition at line 42 of file ValueSymbolTable.cpp.

References const_iterator, llvm::StringMap< ValueTy, AllocatorTy >::end(), and llvm::StringMap< ValueTy, AllocatorTy >::find().

Value * ValueSymbolTable::lookup const std::string &  name  )  const
 

Lookup a named Value.

This method finds the value with the given name in the the symbol table.

Returns:
the value associated with the name

Definition at line 35 of file ValueSymbolTable.cpp.

References const_iterator, llvm::StringMap< ValueTy, AllocatorTy >::end(), and llvm::StringMap< ValueTy, AllocatorTy >::find().

Referenced by ForceRenaming(), Module::getFunction(), Module::getGlobalVariable(), Module::getNamedAlias(), Module::getOrInsertFunction(), LinkFunctionProtos(), and LinkGlobals().

unsigned llvm::ValueSymbolTable::size  )  const [inline]
 

The number of name/type pairs is returned.

Definition at line 77 of file ValueSymbolTable.h.


Friends And Related Function Documentation

friend class SymbolTableListTraits<Argument, Function> [friend]
 

Definition at line 34 of file ValueSymbolTable.h.

friend class SymbolTableListTraits<BasicBlock, Function> [friend]
 

Definition at line 35 of file ValueSymbolTable.h.

friend class SymbolTableListTraits<Function, Module> [friend]
 

Definition at line 37 of file ValueSymbolTable.h.

friend class SymbolTableListTraits<GlobalAlias, Module> [friend]
 

Definition at line 39 of file ValueSymbolTable.h.

friend class SymbolTableListTraits<GlobalVariable, Module> [friend]
 

Definition at line 38 of file ValueSymbolTable.h.

friend class SymbolTableListTraits<Instruction, BasicBlock> [friend]
 

Definition at line 36 of file ValueSymbolTable.h.

friend class Value [friend]
 

Definition at line 33 of file ValueSymbolTable.h.


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.