docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::analysis::ElementIdMapDataFlowState< T, I > Struct Template Referenceabstract

#include <sdfg/analysis/structured_data_flow_analysis.h>

Inheritance diagram for sdfg::analysis::ElementIdMapDataFlowState< T, I >:
[legend]

Public Types

using ExposedType = DataFlowState<std::unordered_map<ElementId, T>>::ExposedType
Public Types inherited from sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >
using ExposedType

Public Member Functions

bool ran_at_least_once () const override
bool update (const ExposedType &incoming) override
 All-in-one for leaf-nodes.
bool update_incoming (const ExposedType &incoming) override
 For non-leaf nodes: update inputs.
bool update_forward_exposed (const ExposedType &forward_exposed) override
 For non-leaf nodes: update outputs.
const ExposedType & forward_exposed () const override
 Get the current state of live elements leaving the node in forward direction.
virtual void apply_kills_and_changes (ExposedType &exposed) const =0
Public Member Functions inherited from sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >
virtual ~DataFlowState ()=default

Static Public Member Functions

static ExposedType empty_in ()
static void merge (ExposedType &merge_into, const ExposedType &other, MergeMode mode=MergeMode::CUMULATIVE)

Protected Attributes

ExposedType incoming_
ExposedType forward_exposed_
bool ran_ = false

Member Typedef Documentation

◆ ExposedType

template<typename T, typename I>
using sdfg::analysis::ElementIdMapDataFlowState< T, I >::ExposedType = DataFlowState<std::unordered_map<ElementId, T>>::ExposedType

Member Function Documentation

◆ apply_kills_and_changes()

template<typename T, typename I>
virtual void sdfg::analysis::ElementIdMapDataFlowState< T, I >::apply_kills_and_changes ( ExposedType & exposed) const
pure virtual

◆ empty_in()

template<typename T, typename I>
ExposedType sdfg::analysis::ElementIdMapDataFlowState< T, I >::empty_in ( )
inlinestatic

◆ forward_exposed()

template<typename T, typename I>
const ExposedType & sdfg::analysis::ElementIdMapDataFlowState< T, I >::forward_exposed ( ) const
inlineoverridevirtual

Get the current state of live elements leaving the node in forward direction.

Implements sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >.

◆ merge()

template<typename T, typename I>
void sdfg::analysis::ElementIdMapDataFlowState< T, I >::merge ( ExposedType & merge_into,
const ExposedType & other,
MergeMode mode = MergeMode::CUMULATIVE )
inlinestatic

◆ ran_at_least_once()

template<typename T, typename I>
bool sdfg::analysis::ElementIdMapDataFlowState< T, I >::ran_at_least_once ( ) const
inlineoverridevirtual

◆ update()

template<typename T, typename I>
bool sdfg::analysis::ElementIdMapDataFlowState< T, I >::update ( const ExposedType & incoming)
inlineoverridevirtual

All-in-one for leaf-nodes.

Parameters
incomingcurrent set of live elements entering the node (in forward direction)
Returns
whether a relevant output changed that necessetates further propagation

Implements sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >.

◆ update_forward_exposed()

template<typename T, typename I>
bool sdfg::analysis::ElementIdMapDataFlowState< T, I >::update_forward_exposed ( const ExposedType & forward_exposed)
inlineoverridevirtual

For non-leaf nodes: update outputs.

Parameters
forward_exposedcurrent set of live elements leaving the node in forward direction
Returns
whether the leaving set has changed since last time

Implements sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >.

◆ update_incoming()

template<typename T, typename I>
bool sdfg::analysis::ElementIdMapDataFlowState< T, I >::update_incoming ( const ExposedType & incoming)
inlineoverridevirtual

For non-leaf nodes: update inputs.

Parameters
incomingcurrent set of live elements entering the node (in forward direction)
Returns
whether the incoming set changed since last time

Implements sdfg::analysis::DataFlowState< std::unordered_map< ElementId, T > >.

Member Data Documentation

◆ forward_exposed_

template<typename T, typename I>
ExposedType sdfg::analysis::ElementIdMapDataFlowState< T, I >::forward_exposed_
protected

◆ incoming_

template<typename T, typename I>
ExposedType sdfg::analysis::ElementIdMapDataFlowState< T, I >::incoming_
protected

◆ ran_

template<typename T, typename I>
bool sdfg::analysis::ElementIdMapDataFlowState< T, I >::ran_ = false
protected

The documentation for this struct was generated from the following file: