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::ModRefTable Struct Reference

Collaboration diagram for llvm::ModRefTable:

Collaboration graph
[legend]
List of all members.

Public Types

typedef hash_map< Instruction *,
ModRefInfo
ModRefMap
typedef ModRefMap::const_iterator const_map_iterator
typedef ModRefMap::iterator map_iterator
typedef std::vector< Instruction
* >::const_iterator 
const_ref_iterator
typedef std::vector< Instruction
* >::iterator 
ref_iterator

Public Member Functions

const_ref_iterator defsBegin () const
ref_iterator defsBegin ()
const_ref_iterator defsEnd () const
ref_iterator defsEnd ()
const_ref_iterator usersBegin () const
ref_iterator usersBegin ()
const_ref_iterator usersEnd () const
ref_iterator usersEnd ()
ref_iterator usersBeforeDef_End (const_ref_iterator defPtr)
const_ref_iterator usersBeforeDef_End (const_ref_iterator defPtr) const
void AddDef (Instruction *D)
void AddUse (Instruction *U)
void Insert (const ModRefTable &fromTable)

Public Attributes

ModRefMap modRefMap
std::vector< Instruction * > definers
std::vector< Instruction * > users
std::vector< unsigned > numUsersBeforeDef

Detailed Description

-------------------------------------------------------------------------- struct ModRefTable:

A data structure that tracks ModRefInfo for instructions: -- modRefMap is a map of Instruction* -> ModRefInfo for the instr. -- definers is a vector of instructions that define any node -- users is a vector of instructions that reference any node -- numUsersBeforeDef is a vector indicating that the number of users seen before definers[i] is numUsersBeforeDef[i].

numUsersBeforeDef[] effectively tells us the exact interleaving of definers and users within the ModRefTable. This is only maintained when constructing the table for one SCC, and not copied over from one table to another since it is no longer useful. --------------------------------------------------------------------------

Definition at line 52 of file MemoryDepAnalysis.cpp.


Member Typedef Documentation

typedef ModRefMap::const_iterator llvm::ModRefTable::const_map_iterator
 

Definition at line 54 of file MemoryDepAnalysis.cpp.

typedef std::vector<Instruction*>::const_iterator llvm::ModRefTable::const_ref_iterator
 

Definition at line 56 of file MemoryDepAnalysis.cpp.

typedef ModRefMap:: iterator llvm::ModRefTable::map_iterator
 

Definition at line 55 of file MemoryDepAnalysis.cpp.

typedef hash_map<Instruction*, ModRefInfo> llvm::ModRefTable::ModRefMap
 

Definition at line 53 of file MemoryDepAnalysis.cpp.

typedef std::vector<Instruction*>:: iterator llvm::ModRefTable::ref_iterator
 

Definition at line 57 of file MemoryDepAnalysis.cpp.


Member Function Documentation

void llvm::ModRefTable::AddDef Instruction D  )  [inline]
 

Definition at line 96 of file MemoryDepAnalysis.cpp.

References definers, numUsersBeforeDef, and users.

Referenced by llvm::ModRefInfoBuilder::visitCallInst(), and llvm::ModRefInfoBuilder::visitStoreInst().

void llvm::ModRefTable::AddUse Instruction U  )  [inline]
 

Definition at line 100 of file MemoryDepAnalysis.cpp.

References users.

Referenced by llvm::ModRefInfoBuilder::visitCallInst(), and llvm::ModRefInfoBuilder::visitLoadInst().

ref_iterator llvm::ModRefTable::defsBegin  )  [inline]
 

Definition at line 66 of file MemoryDepAnalysis.cpp.

References definers.

const_ref_iterator llvm::ModRefTable::defsBegin  )  const [inline]
 

Definition at line 65 of file MemoryDepAnalysis.cpp.

References definers.

Referenced by usersBeforeDef_End().

ref_iterator llvm::ModRefTable::defsEnd  )  [inline]
 

Definition at line 68 of file MemoryDepAnalysis.cpp.

References definers.

const_ref_iterator llvm::ModRefTable::defsEnd  )  const [inline]
 

Definition at line 67 of file MemoryDepAnalysis.cpp.

References definers.

void llvm::ModRefTable::Insert const ModRefTable fromTable  )  [inline]
 

Definition at line 103 of file MemoryDepAnalysis.cpp.

References definers, modRefMap, numUsersBeforeDef, and users.

const_ref_iterator llvm::ModRefTable::usersBeforeDef_End const_ref_iterator  defPtr  )  const [inline]
 

Definition at line 89 of file MemoryDepAnalysis.cpp.

ref_iterator llvm::ModRefTable::usersBeforeDef_End const_ref_iterator  defPtr  )  [inline]
 

Definition at line 83 of file MemoryDepAnalysis.cpp.

References defsBegin(), numUsersBeforeDef, usersBegin(), and usersEnd().

ref_iterator llvm::ModRefTable::usersBegin  )  [inline]
 

Definition at line 72 of file MemoryDepAnalysis.cpp.

References users.

const_ref_iterator llvm::ModRefTable::usersBegin  )  const [inline]
 

Definition at line 71 of file MemoryDepAnalysis.cpp.

References users.

Referenced by usersBeforeDef_End().

ref_iterator llvm::ModRefTable::usersEnd  )  [inline]
 

Definition at line 74 of file MemoryDepAnalysis.cpp.

References users.

const_ref_iterator llvm::ModRefTable::usersEnd  )  const [inline]
 

Definition at line 73 of file MemoryDepAnalysis.cpp.

References users.

Referenced by usersBeforeDef_End().


Member Data Documentation

std::vector<Instruction*> llvm::ModRefTable::definers
 

Definition at line 60 of file MemoryDepAnalysis.cpp.

Referenced by AddDef(), defsBegin(), defsEnd(), and Insert().

ModRefMap llvm::ModRefTable::modRefMap
 

Definition at line 59 of file MemoryDepAnalysis.cpp.

Referenced by Insert(), llvm::ModRefInfoBuilder::visitCallInst(), llvm::ModRefInfoBuilder::visitLoadInst(), and llvm::ModRefInfoBuilder::visitStoreInst().

std::vector<unsigned> llvm::ModRefTable::numUsersBeforeDef
 

Definition at line 62 of file MemoryDepAnalysis.cpp.

Referenced by AddDef(), Insert(), and usersBeforeDef_End().

std::vector<Instruction*> llvm::ModRefTable::users
 

Definition at line 61 of file MemoryDepAnalysis.cpp.

Referenced by AddDef(), AddUse(), Insert(), usersBegin(), and usersEnd().


The documentation for this struct was generated from the following file: