Jlm
Classes | Public Member Functions | Private Types | Private Attributes | List of all members
jlm::rvsdg::detail::TraversalTracker< NodeType > Class Template Referencefinal

#include <traverser.hpp>

Classes

struct  State
 

Public Member Functions

bool isNodeVisited (NodeType *node) const
 Determines whether node has been visited already. More...
 
void checkNodeActivation (NodeType *node, std::size_t threshold)
 Checks activation count whether node is ready for visiting. More...
 
void checkNodeDeactivation (NodeType *node, std::size_t threshold)
 Checks activation count whether node is no longer ready for visiting. More...
 
void checkMarkNodeVisitedIfFrontier (NodeType *node)
 Marks a node visited if it is currently ready for visiting. More...
 
void incActivationCount (NodeType *node, std::size_t threshold)
 Increments activation count; adds to frontier if threshold is met. More...
 
void decActivationCount (NodeType *node, std::size_t threshold)
 Decrements activation count; removes from frontier if threshold is no longer met. More...
 
void removeNode (NodeType *node)
 Removes any state associated with the given node. More...
 
NodeType * peek ()
 

Private Types

using FrontierList = std::list< NodeType * >
 

Private Attributes

std::unordered_map< NodeType *, Statestates_
 
FrontierList frontier_
 

Detailed Description

template<typename NodeType>
class jlm::rvsdg::detail::TraversalTracker< NodeType >

Support class for tracking the state of nodes during traversal.

Template Parameters
NodeTypethe type of the node being tracked

Definition at line 42 of file traverser.hpp.

Member Typedef Documentation

◆ FrontierList

template<typename NodeType >
using jlm::rvsdg::detail::TraversalTracker< NodeType >::FrontierList = std::list<NodeType *>
private

Definition at line 77 of file traverser.hpp.

Member Function Documentation

◆ checkMarkNodeVisitedIfFrontier()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::checkMarkNodeVisitedIfFrontier ( NodeType *  node)

Marks a node visited if it is currently ready for visiting.

Definition at line 451 of file traverser.cpp.

◆ checkNodeActivation()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::checkNodeActivation ( NodeType *  node,
std::size_t  threshold 
)

Checks activation count whether node is ready for visiting.

Definition at line 425 of file traverser.cpp.

◆ checkNodeDeactivation()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::checkNodeDeactivation ( NodeType *  node,
std::size_t  threshold 
)

Checks activation count whether node is no longer ready for visiting.

Definition at line 438 of file traverser.cpp.

◆ decActivationCount()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::decActivationCount ( NodeType *  node,
std::size_t  threshold 
)

Decrements activation count; removes from frontier if threshold is no longer met.

Definition at line 473 of file traverser.cpp.

◆ incActivationCount()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::incActivationCount ( NodeType *  node,
std::size_t  threshold 
)

Increments activation count; adds to frontier if threshold is met.

Definition at line 464 of file traverser.cpp.

◆ isNodeVisited()

template<typename NodeType >
bool jlm::rvsdg::detail::TraversalTracker< NodeType >::isNodeVisited ( NodeType *  node) const

Determines whether node has been visited already.

Definition at line 417 of file traverser.cpp.

◆ peek()

template<typename NodeType >
NodeType * jlm::rvsdg::detail::TraversalTracker< NodeType >::peek

Definition at line 494 of file traverser.cpp.

◆ removeNode()

template<typename NodeType >
void jlm::rvsdg::detail::TraversalTracker< NodeType >::removeNode ( NodeType *  node)

Removes any state associated with the given node.

Definition at line 482 of file traverser.cpp.

Member Data Documentation

◆ frontier_

template<typename NodeType >
FrontierList jlm::rvsdg::detail::TraversalTracker< NodeType >::frontier_
private

Definition at line 87 of file traverser.hpp.

◆ states_

template<typename NodeType >
std::unordered_map<NodeType *, State> jlm::rvsdg::detail::TraversalTracker< NodeType >::states_
private

Definition at line 86 of file traverser.hpp.


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