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

Schedule-aware tile analysis: for a (loop scope, container) that MemoryLayoutAnalysis resolves to a bounded tile, produces a tiles::Tile (geometry, thread/value partition, copy direction) for memory-level transformations to consume instead of re-deriving. More...

#include <sdfg/tiles/analysis/tile_analysis.h>

Inheritance diagram for sdfg::tiles::TileAnalysis:
[legend]

Classes

struct  AccessSummary
 How a container is accessed within a loop, read straight off the dataflow (memlet types), independent of any pointer-weak Users analysis. More...

Public Member Functions

 TileAnalysis (StructuredSDFG &sdfg)
std::string name () const override
const tiles::Tile * tile (const structured_control_flow::ControlFlowNode &scope, const std::string &container) const
 The tile for container at loop scope scope, or nullptr if none.
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

Static Public Member Functions

static AccessSummary summarize (const StructuredSDFG &sdfg, structured_control_flow::StructuredLoop &loop, const std::string &container)
 Classify container's accesses within loop via the pointer analyzers.

Protected Member Functions

void run (analysis::AnalysisManager &analysis_manager) override
Protected Member Functions inherited from sdfg::analysis::Analysis
template<class T>
T option (const OptionKey< T > &key, T fallback=T{}) const

Additional Inherited Members

Protected Attributes inherited from sdfg::analysis::Analysis
StructuredSDFG & sdfg_
symbolic::Assumptions additional_assumptions_
const Options * options_ = &Options::empty()

Detailed Description

Schedule-aware tile analysis: for a (loop scope, container) that MemoryLayoutAnalysis resolves to a bounded tile, produces a tiles::Tile (geometry, thread/value partition, copy direction) for memory-level transformations to consume instead of re-deriving.

Constructor & Destructor Documentation

◆ TileAnalysis()

sdfg::tiles::TileAnalysis::TileAnalysis ( StructuredSDFG & sdfg)

Member Function Documentation

◆ name()

std::string sdfg::tiles::TileAnalysis::name ( ) const
inlineoverridevirtual

◆ run()

void sdfg::tiles::TileAnalysis::run ( analysis::AnalysisManager & analysis_manager)
overrideprotectedvirtual

◆ summarize()

AccessSummary sdfg::tiles::TileAnalysis::summarize ( const StructuredSDFG & sdfg,
structured_control_flow::StructuredLoop & loop,
const std::string & container )
static

Classify container's accesses within loop via the pointer analyzers.

aliased is set when the pointer escapes, is overwritten/swapped, or is passed to a library node that may capture it — any of which lets the container's memory be reached outside the memlets a transformation rewrites.

◆ tile()

const tiles::Tile * sdfg::tiles::TileAnalysis::tile ( const structured_control_flow::ControlFlowNode & scope,
const std::string & container ) const

The tile for container at loop scope scope, or nullptr if none.


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