docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::analysis::Analysis Class Referenceabstract

#include <sdfg/analysis/analysis.h>

Inheritance diagram for sdfg::analysis::Analysis:
[legend]

Public Member Functions

 Analysis (StructuredSDFG &sdfg)
 Analysis (StructuredSDFG &sdfg, const Options &options)
virtual ~Analysis ()=default
virtual std::string name () const =0
virtual bool invalidate (structured_control_flow::ControlFlowNode &changed)
 Updates the analysis after a change confined to the subtree of changed.
 Analysis (const Analysis &a)=delete
Analysis & operator= (const Analysis &)=delete

Protected Member Functions

virtual void run (analysis::AnalysisManager &analysis_manager)=0
template<class T>
T option (const OptionKey< T > &key, T fallback=T{}) const

Protected Attributes

StructuredSDFG & sdfg_
symbolic::Assumptions additional_assumptions_
const Options * options_ = &Options::empty()

Friends

class AnalysisManager

Constructor & Destructor Documentation

◆ Analysis() [1/3]

sdfg::analysis::Analysis::Analysis ( StructuredSDFG & sdfg)

◆ Analysis() [2/3]

sdfg::analysis::Analysis::Analysis ( StructuredSDFG & sdfg,
const Options & options )

◆ ~Analysis()

virtual sdfg::analysis::Analysis::~Analysis ( )
virtualdefault

◆ Analysis() [3/3]

sdfg::analysis::Analysis::Analysis ( const Analysis & a)
delete

Member Function Documentation

◆ invalidate()

virtual bool sdfg::analysis::Analysis::invalidate ( structured_control_flow::ControlFlowNode & changed)
inlinevirtual

Updates the analysis after a change confined to the subtree of changed.

The subtree of changed is the only part of the SDFG that changed since the analysis last saw it: nodes in it were added, removed, moved or modified, and the position of changed in its parent may have changed. An analysis whose results elsewhere stay valid updates the affected ones, or drops them to recompute them on demand, and returns true. The default returns false: the analysis is evicted and runs again when needed.

Reimplemented in sdfg::analysis::AssumptionsAnalysis, sdfg::analysis::LoopAnalysis, and sdfg::analysis::MemoryLayoutAnalysis.

◆ name()

◆ operator=()

Analysis & sdfg::analysis::Analysis::operator= ( const Analysis & )
delete

◆ option()

template<class T>
T sdfg::analysis::Analysis::option ( const OptionKey< T > & key,
T fallback = T{} ) const
inlineprotected

◆ run()

◆ AnalysisManager

friend class AnalysisManager
friend

Member Data Documentation

◆ additional_assumptions_

symbolic::Assumptions sdfg::analysis::Analysis::additional_assumptions_
protected

◆ options_

const Options* sdfg::analysis::Analysis::options_ = &Options::empty()
protected

◆ sdfg_

StructuredSDFG& sdfg::analysis::Analysis::sdfg_
protected

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