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

#include <sdfg/analysis/reference_analysis.h>

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

Public Member Functions

 ReferenceAnalysis (StructuredSDFG &sdfg)
std::string name () const override
void run (analysis::AnalysisManager &analysis_manager) override
void visit_block (analysis::Users &users, structured_control_flow::Block &block, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
void visit_sequence (analysis::Users &users, structured_control_flow::Sequence &sequence, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
void visit_if_else (analysis::Users &users, structured_control_flow::IfElse &if_loop, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
void visit_for (analysis::Users &users, structured_control_flow::StructuredLoop &for_loop, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
void visit_while (analysis::Users &users, structured_control_flow::While &while_loop, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
void visit_return (analysis::Users &users, structured_control_flow::Return &return_statement, std::unordered_set< User * > &undefined, std::unordered_map< User *, std::unordered_set< User * > > &open_definitions, std::unordered_map< User *, std::unordered_set< User * > > &closed_definitions)
std::unordered_set< User * > defines (User &move)
std::unordered_map< User *, std::unordered_set< User * > > definitions (const std::string &container)
std::unordered_map< User *, std::unordered_set< User * > > defined_by (const std::string &container)
std::unordered_set< User * > defined_by (User &user)
Public Member Functions inherited from sdfg::analysis::Analysis
 Analysis (StructuredSDFG &sdfg)
 Analysis (StructuredSDFG &sdfg, const Options &options)
virtual ~Analysis ()=default
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

Friends

class AnalysisManager

Additional Inherited Members

Protected Member Functions inherited from sdfg::analysis::Analysis
template<class T>
T option (const OptionKey< T > &key, T fallback=T{}) const
Protected Attributes inherited from sdfg::analysis::Analysis
StructuredSDFG & sdfg_
symbolic::Assumptions additional_assumptions_
const Options * options_ = &Options::empty()

Constructor & Destructor Documentation

◆ ReferenceAnalysis()

sdfg::analysis::ReferenceAnalysis::ReferenceAnalysis ( StructuredSDFG & sdfg)

Member Function Documentation

◆ defined_by() [1/2]

std::unordered_map< User *, std::unordered_set< User * > > sdfg::analysis::ReferenceAnalysis::defined_by ( const std::string & container)

◆ defined_by() [2/2]

std::unordered_set< User * > sdfg::analysis::ReferenceAnalysis::defined_by ( User & user)

◆ defines()

std::unordered_set< User * > sdfg::analysis::ReferenceAnalysis::defines ( User & move)

◆ definitions()

std::unordered_map< User *, std::unordered_set< User * > > sdfg::analysis::ReferenceAnalysis::definitions ( const std::string & container)

◆ name()

std::string sdfg::analysis::ReferenceAnalysis::name ( ) const
inlineoverridevirtual

◆ run()

void sdfg::analysis::ReferenceAnalysis::run ( analysis::AnalysisManager & analysis_manager)
overridevirtual

◆ visit_block()

void sdfg::analysis::ReferenceAnalysis::visit_block ( analysis::Users & users,
structured_control_flow::Block & block,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ visit_for()

void sdfg::analysis::ReferenceAnalysis::visit_for ( analysis::Users & users,
structured_control_flow::StructuredLoop & for_loop,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ visit_if_else()

void sdfg::analysis::ReferenceAnalysis::visit_if_else ( analysis::Users & users,
structured_control_flow::IfElse & if_loop,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ visit_return()

void sdfg::analysis::ReferenceAnalysis::visit_return ( analysis::Users & users,
structured_control_flow::Return & return_statement,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ visit_sequence()

void sdfg::analysis::ReferenceAnalysis::visit_sequence ( analysis::Users & users,
structured_control_flow::Sequence & sequence,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ visit_while()

void sdfg::analysis::ReferenceAnalysis::visit_while ( analysis::Users & users,
structured_control_flow::While & while_loop,
std::unordered_set< User * > & undefined,
std::unordered_map< User *, std::unordered_set< User * > > & open_definitions,
std::unordered_map< User *, std::unordered_set< User * > > & closed_definitions )

◆ AnalysisManager

friend class AnalysisManager
friend

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