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::DepIterState Class Reference

#include <PgmDependenceGraph.h>

Collaboration diagram for llvm::DepIterState:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DepIterState (DependenceGraph *_memDepGraph, Instruction &I, bool incomingDeps, PDGIteratorFlags whichDeps)
bool operator== (const DepIterState &S)
bool done () const
void Next ()
bool SetFirstMemoryDep ()
bool SetFirstSSADep ()

Public Attributes

DepGraphNodedepNode
DependenceGraph::iterator memDepIter
Instruction::op_iterator ssaInEdgeIter
Value::use_iterator ssaOutEdgeIter
DependenceGraphmemDepGraph
Dependence dep
PDGIteratorFlags depFlags:8
IterStateFlags iterFlags:8

Detailed Description

struct DepIterState - an internal implementation detail. It are exposed here only to give inlinable access to field dep, which is the representation for the current dependence pointed to by a PgmDependenceGraph::iterator.

Definition at line 73 of file PgmDependenceGraph.h.


Constructor & Destructor Documentation

llvm::DepIterState::DepIterState DependenceGraph _memDepGraph,
Instruction I,
bool  incomingDeps,
PDGIteratorFlags  whichDeps
 

Definition at line 110 of file PgmDependenceGraph.cpp.

References depNode, llvm::DependenceGraph::getNode(), llvm::DependenceGraph::inDepBegin(), iterFlags, memDepGraph, memDepIter, llvm::MemoryDeps, llvm::User::op_begin(), llvm::DependenceGraph::outDepBegin(), SetFirstMemoryDep(), SetFirstSSADep(), llvm::SSADeps, ssaInEdgeIter, ssaOutEdgeIter, and llvm::Value::use_begin().


Member Function Documentation

bool llvm::DepIterState::done  )  const [inline]
 

Definition at line 104 of file PgmDependenceGraph.h.

References iterFlags.

Referenced by llvm::PDGIterator::fini(), and llvm::PDGIterator::operator==().

void llvm::DepIterState::Next  ) 
 

Next - Bump this iterator logically by 1 (to next dependence) and reset the dep field to represent the new dependence if there is one. Set done = true otherwise.

Definition at line 147 of file PgmDependenceGraph.cpp.

References llvm::ControlDeps, dep, depFlags, llvm::Dependence::getDepType(), llvm::IncomingFlag, iterFlags, memDepIter, llvm::MemoryDeps, SetFirstMemoryDep(), SetFirstSSADep(), llvm::SSADeps, ssaInEdgeIter, and ssaOutEdgeIter.

Referenced by llvm::PDGIterator::operator++().

bool llvm::DepIterState::operator== const DepIterState S  )  [inline]
 

Definition at line 93 of file PgmDependenceGraph.h.

References dep, depFlags, depNode, iterFlags, memDepGraph, memDepIter, ssaInEdgeIter, and ssaOutEdgeIter.

bool llvm::DepIterState::SetFirstMemoryDep  ) 
 

SetFirstMemoryDep - Find the first memory dependence for the current Mem In/Out iterators. Sets dep to that dependence and returns true if one is found. Returns false and leaves dep unchanged otherwise.

Definition at line 49 of file PgmDependenceGraph.cpp.

References dep, depFlags, depNode, llvm::Dependence::getDepType(), llvm::IncomingFlag, llvm::DependenceGraph::inDepEnd(), iterFlags, memDepGraph, memDepIter, llvm::MemoryDeps, and llvm::DependenceGraph::outDepEnd().

Referenced by DepIterState(), and Next().

bool llvm::DepIterState::SetFirstSSADep  ) 
 

SetFirstSSADep - Find the next valid data dependence for the current SSA In/Out iterators. A valid data dependence is one that is to/from an Instruction. E.g., an SSA edge from a formal parameter is not a valid dependence. Sets dep to that dependence and returns true if a valid one is found. Returns false and leaves dep unchanged otherwise.

Definition at line 75 of file PgmDependenceGraph.cpp.

References dep, depFlags, depNode, E, llvm::Dependence::getDepType(), llvm::DepGraphNode::getInstr(), llvm::DependenceGraph::getNode(), llvm::IncomingFlag, iterFlags, memDepGraph, llvm::User::op_end(), llvm::SSADeps, ssaInEdgeIter, ssaOutEdgeIter, llvm::TrueDependence, and llvm::Value::use_end().

Referenced by DepIterState(), and Next().


Member Data Documentation

Dependence llvm::DepIterState::dep
 

Definition at line 84 of file PgmDependenceGraph.h.

Referenced by Next(), llvm::PDGIterator::operator *(), llvm::PDGIterator::operator->(), operator==(), SetFirstMemoryDep(), and SetFirstSSADep().

PDGIteratorFlags llvm::DepIterState::depFlags
 

Definition at line 85 of file PgmDependenceGraph.h.

Referenced by Next(), operator==(), SetFirstMemoryDep(), and SetFirstSSADep().

DepGraphNode* llvm::DepIterState::depNode
 

Definition at line 79 of file PgmDependenceGraph.h.

Referenced by DepIterState(), operator==(), SetFirstMemoryDep(), and SetFirstSSADep().

IterStateFlags llvm::DepIterState::iterFlags
 

Definition at line 86 of file PgmDependenceGraph.h.

Referenced by DepIterState(), done(), Next(), operator==(), SetFirstMemoryDep(), and SetFirstSSADep().

DependenceGraph* llvm::DepIterState::memDepGraph
 

Definition at line 83 of file PgmDependenceGraph.h.

Referenced by DepIterState(), operator==(), SetFirstMemoryDep(), and SetFirstSSADep().

DependenceGraph::iterator llvm::DepIterState::memDepIter
 

Definition at line 80 of file PgmDependenceGraph.h.

Referenced by DepIterState(), Next(), operator==(), and SetFirstMemoryDep().

Instruction::op_iterator llvm::DepIterState::ssaInEdgeIter
 

Definition at line 81 of file PgmDependenceGraph.h.

Referenced by DepIterState(), Next(), operator==(), and SetFirstSSADep().

Value::use_iterator llvm::DepIterState::ssaOutEdgeIter
 

Definition at line 82 of file PgmDependenceGraph.h.

Referenced by DepIterState(), Next(), operator==(), and SetFirstSSADep().


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