CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::fsm::FSMStateNode Class Reference

This is a Node in the FSMGraph. Each node represents a state in the FSM. More...

#include <FSMGraph.h>

Inheritance diagram for circt::fsm::FSMStateNode:
Collaboration diagram for circt::fsm::FSMStateNode:

Classes

struct  UseIterator
 Iterator for state uses. More...

Public Types

using iterator = detail::AddressIterator<FSMTransitionList::iterator>
 Iterate outgoing FSM transitions of this state.

Public Member Functions

 FSMStateNode ()
StateOp getState () const
 Get the state operation that this node is tracking.
FSMTransitionEdge * addTransitionEdge (FSMStateNode *nextState, TransitionOp transition)
 Adds a new transition edge from this state to 'nextState'.
void eraseTransitionEdge (FSMTransitionEdge *edge)
 Erases a transition edge from this state.
iterator begin ()
iterator end ()
UseIterator usesBegin ()
 Iterate the instance records which instantiate this module.
UseIterator usesEnd ()
llvm::iterator_range< UseIterator > uses ()

Private Types

using FSMTransitionList = llvm::iplist<FSMTransitionEdge>

Private Member Functions

 FSMStateNode (StateOp state)
 FSMStateNode (const FSMStateNode &)=delete
void recordUse (FSMTransitionEdge *transition)
 Record that a tramsition referenced this state.

Private Attributes

StateOp state
 The state.
FSMTransitionList transitions
 List of outgoing transitions from this state.
FSMTransitionEdge * firstUse = nullptr
 List of transitions which reference this state.

Friends

class FSMTransitionEdge
class FSMGraph
 Provide access to the constructor.

Detailed Description

This is a Node in the FSMGraph. Each node represents a state in the FSM.

Definition at line 131 of file FSMGraph.h.

Member Typedef Documentation

◆ FSMTransitionList

Definition at line 132 of file FSMGraph.h.

◆ iterator

using circt::fsm::FSMStateNode::iterator = detail::AddressIterator<FSMTransitionList::iterator>

Iterate outgoing FSM transitions of this state.

Definition at line 149 of file FSMGraph.h.

Constructor & Destructor Documentation

◆ FSMStateNode() [1/3]

circt::fsm::FSMStateNode::FSMStateNode ( )
inline

◆ FSMStateNode() [2/3]

circt::fsm::FSMStateNode::FSMStateNode ( StateOp state)
inlineprivate

Definition at line 185 of file FSMGraph.h.

References state.

◆ FSMStateNode() [3/3]

circt::fsm::FSMStateNode::FSMStateNode ( const FSMStateNode & )
privatedelete

Member Function Documentation

◆ addTransitionEdge()

FSMTransitionEdge * FSMStateNode::addTransitionEdge ( FSMStateNode * nextState,
TransitionOp transition )

Adds a new transition edge from this state to 'nextState'.

Definition at line 31 of file FSMGraph.cpp.

References addTransitionEdge(), FSMStateNode(), FSMTransitionEdge, recordUse(), and transitions.

Referenced by addTransitionEdge().

◆ begin()

iterator circt::fsm::FSMStateNode::begin ( )
inline

Definition at line 150 of file FSMGraph.h.

References transitions.

Referenced by llvm::GraphTraits< circt::fsm::FSMStateNode * >::child_begin().

◆ end()

iterator circt::fsm::FSMStateNode::end ( )
inline

Definition at line 151 of file FSMGraph.h.

References transitions.

Referenced by llvm::GraphTraits< circt::fsm::FSMStateNode * >::child_end().

◆ eraseTransitionEdge()

void FSMStateNode::eraseTransitionEdge ( FSMTransitionEdge * edge)

Erases a transition edge from this state.

This also removes the underlying TransitionOp.

Definition at line 26 of file FSMGraph.cpp.

References eraseTransitionEdge(), FSMTransitionEdge, circt::fsm::FSMTransitionEdge::getTransition(), and transitions.

Referenced by eraseTransitionEdge().

◆ getState()

StateOp circt::fsm::FSMStateNode::getState ( ) const
inline

Get the state operation that this node is tracking.

Definition at line 138 of file FSMGraph.h.

References state.

Referenced by llvm::DOTGraphTraits< circt::fsm::FSMGraph * >::getNodeDescription(), and llvm::DOTGraphTraits< circt::fsm::FSMGraph * >::getNodeLabel().

◆ recordUse()

void FSMStateNode::recordUse ( FSMTransitionEdge * transition)
private

Record that a tramsition referenced this state.

Definition at line 39 of file FSMGraph.cpp.

References firstUse, FSMTransitionEdge, circt::fsm::FSMTransitionEdge::nextUse, and recordUse().

Referenced by addTransitionEdge(), and recordUse().

◆ uses()

llvm::iterator_range< UseIterator > circt::fsm::FSMStateNode::uses ( )
inline

Definition at line 178 of file FSMGraph.h.

References usesBegin(), and usesEnd().

◆ usesBegin()

UseIterator circt::fsm::FSMStateNode::usesBegin ( )
inline

Iterate the instance records which instantiate this module.

Definition at line 176 of file FSMGraph.h.

Referenced by uses().

◆ usesEnd()

UseIterator circt::fsm::FSMStateNode::usesEnd ( )
inline

Definition at line 177 of file FSMGraph.h.

Referenced by uses().

◆ FSMGraph

friend class FSMGraph
friend

Provide access to the constructor.

Definition at line 201 of file FSMGraph.h.

References FSMGraph.

Referenced by FSMGraph.

◆ FSMTransitionEdge

friend class FSMTransitionEdge
friend

Member Data Documentation

◆ firstUse

FSMTransitionEdge* circt::fsm::FSMStateNode::firstUse = nullptr
private

List of transitions which reference this state.

Definition at line 198 of file FSMGraph.h.

Referenced by recordUse(), and circt::fsm::FSMStateNode::UseIterator::UseIterator().

◆ state

StateOp circt::fsm::FSMStateNode::state
private

The state.

Definition at line 192 of file FSMGraph.h.

Referenced by FSMStateNode(), FSMStateNode(), and getState().

◆ transitions

FSMTransitionList circt::fsm::FSMStateNode::transitions
private

List of outgoing transitions from this state.

Definition at line 195 of file FSMGraph.h.

Referenced by addTransitionEdge(), begin(), end(), and eraseTransitionEdge().


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