CIRCT  20.0.0git
Public Member Functions | Private Member Functions | Private Attributes | List of all members
circt::scheduling::detail::DependenceIterator Class Reference

An iterator to transparently surface an operation's def-use dependences from the SSA subgraph (induced by the registered operations), as well as auxiliary, operation-to-operation dependences explicitly provided by the client. More...

#include <DependenceIterator.h>

Inheritance diagram for circt::scheduling::detail::DependenceIterator:
Inheritance graph
[legend]
Collaboration diagram for circt::scheduling::detail::DependenceIterator:
Collaboration graph
[legend]

Public Member Functions

 DependenceIterator (Problem &problem, Operation *op, bool end=false)
 Construct an iterator over the op's def-use dependences (i.e. More...
 
bool operator== (const DependenceIterator &other) const
 
const Dependenceoperator* () const
 
DependenceIteratoroperator++ ()
 

Private Member Functions

void findNextDependence ()
 

Private Attributes

Problemproblem
 
Operation * op
 
unsigned operandIdx
 
unsigned auxPredIdx
 
llvm::SmallSetVector< Operation *, 4 > * auxPreds
 
Dependence dep
 

Detailed Description

An iterator to transparently surface an operation's def-use dependences from the SSA subgraph (induced by the registered operations), as well as auxiliary, operation-to-operation dependences explicitly provided by the client.

Definition at line 87 of file DependenceIterator.h.

Constructor & Destructor Documentation

◆ DependenceIterator()

DependenceIterator::DependenceIterator ( Problem problem,
Operation *  op,
bool  end = false 
)

Construct an iterator over the op's def-use dependences (i.e.

result values of other operations registered in the scheduling problem, which are used by one of op's operands), and over auxiliary dependences (i.e. from other operation to op).

Definition at line 480 of file Problems.cpp.

References circt::scheduling::Problem::auxDependences, auxPreds, findNextDependence(), op, and problem.

Member Function Documentation

◆ findNextDependence()

void DependenceIterator::findNextDependence ( )
private

◆ operator*()

const Dependence& circt::scheduling::detail::DependenceIterator::operator* ( ) const
inline

Definition at line 101 of file DependenceIterator.h.

References dep.

◆ operator++()

DependenceIterator& circt::scheduling::detail::DependenceIterator::operator++ ( )
inline

Definition at line 103 of file DependenceIterator.h.

References findNextDependence().

◆ operator==()

bool circt::scheduling::detail::DependenceIterator::operator== ( const DependenceIterator other) const
inline

Definition at line 97 of file DependenceIterator.h.

References dep.

Member Data Documentation

◆ auxPredIdx

unsigned circt::scheduling::detail::DependenceIterator::auxPredIdx
private

Definition at line 115 of file DependenceIterator.h.

Referenced by findNextDependence().

◆ auxPreds

llvm::SmallSetVector<Operation *, 4>* circt::scheduling::detail::DependenceIterator::auxPreds
private

Definition at line 116 of file DependenceIterator.h.

Referenced by DependenceIterator(), and findNextDependence().

◆ dep

Dependence circt::scheduling::detail::DependenceIterator::dep
private

Definition at line 118 of file DependenceIterator.h.

Referenced by findNextDependence(), operator*(), and operator==().

◆ op

Operation* circt::scheduling::detail::DependenceIterator::op
private

Definition at line 112 of file DependenceIterator.h.

Referenced by DependenceIterator(), and findNextDependence().

◆ operandIdx

unsigned circt::scheduling::detail::DependenceIterator::operandIdx
private

Definition at line 114 of file DependenceIterator.h.

Referenced by findNextDependence().

◆ problem

Problem& circt::scheduling::detail::DependenceIterator::problem
private

Definition at line 111 of file DependenceIterator.h.

Referenced by DependenceIterator(), and findNextDependence().


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