|
CIRCT 24.0.0git
|
This is a Node in the FSMGraph. Each node represents a state in the FSM. More...
#include <FSMGraph.h>


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. | |
This is a Node in the FSMGraph. Each node represents a state in the FSM.
Definition at line 131 of file FSMGraph.h.
|
private |
Definition at line 132 of file FSMGraph.h.
| using circt::fsm::FSMStateNode::iterator = detail::AddressIterator<FSMTransitionList::iterator> |
Iterate outgoing FSM transitions of this state.
Definition at line 149 of file FSMGraph.h.
|
inline |
Definition at line 135 of file FSMGraph.h.
References state.
Referenced by addTransitionEdge(), FSMStateNode(), and circt::fsm::FSMStateNode::UseIterator::UseIterator().
|
inlineprivate |
Definition at line 185 of file FSMGraph.h.
References state.
|
privatedelete |
References FSMStateNode(), and FSMTransitionEdge.
| 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().
|
inline |
Definition at line 150 of file FSMGraph.h.
References transitions.
Referenced by llvm::GraphTraits< circt::fsm::FSMStateNode * >::child_begin().
|
inline |
Definition at line 151 of file FSMGraph.h.
References transitions.
Referenced by llvm::GraphTraits< circt::fsm::FSMStateNode * >::child_end().
| 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().
|
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().
|
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().
|
inline |
Definition at line 178 of file FSMGraph.h.
References usesBegin(), and usesEnd().
|
inline |
Iterate the instance records which instantiate this module.
Definition at line 176 of file FSMGraph.h.
Referenced by uses().
|
inline |
Definition at line 177 of file FSMGraph.h.
Referenced by uses().
|
friend |
Provide access to the constructor.
Definition at line 201 of file FSMGraph.h.
References FSMGraph.
Referenced by FSMGraph.
|
friend |
Definition at line 183 of file FSMGraph.h.
References FSMTransitionEdge.
Referenced by addTransitionEdge(), eraseTransitionEdge(), FSMStateNode(), FSMTransitionEdge, circt::fsm::FSMStateNode::UseIterator::operator*(), and recordUse().
|
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().
|
private |
The state.
Definition at line 192 of file FSMGraph.h.
Referenced by FSMStateNode(), FSMStateNode(), and getState().
|
private |
List of outgoing transitions from this state.
Definition at line 195 of file FSMGraph.h.
Referenced by addTransitionEdge(), begin(), end(), and eraseTransitionEdge().