|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Analysis that infers the assumed memory layouts of memlets. More...
#include <sdfg/analysis/memory_layout_analysis.h>
Public Member Functions | |
| MemoryLayoutAnalysis (StructuredSDFG &sdfg) | |
| MemoryLayoutAnalysis (StructuredSDFG &sdfg, const Options &options) | |
| std::string | name () const override |
| bool | invalidate (structured_control_flow::ControlFlowNode &changed) override |
Marks the subtree of changed and the scopes around it as out of date; queries compute them again. | |
| const MemoryTile * | access (const data_flow::Memlet &memlet) const |
| Get the inferred memory layout for a memlet. | |
| const MemoryTile * | tile (const structured_control_flow::ControlFlowNode &scope, const std::string &container) const |
| Get the inferred memory layout for a container at a specific scope. | |
| const std::vector< MemoryTileGroup > * | tile_groups (const structured_control_flow::ControlFlowNode &scope, const std::string &container) const |
| Get tile groups for a container at a specific scope. | |
| const MemoryTileGroup * | tile_group_for (const structured_control_flow::ControlFlowNode &scope, const data_flow::Memlet &memlet) const |
| Get the tile group containing a specific memlet at a scope. | |
| Public Member Functions inherited from sdfg::analysis::Analysis | |
| Analysis (StructuredSDFG &sdfg) | |
| Analysis (StructuredSDFG &sdfg, const Options &options) | |
| virtual | ~Analysis ()=default |
| Analysis (const Analysis &a)=delete | |
| Analysis & | operator= (const Analysis &)=delete |
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() |
Analysis that infers the assumed memory layouts of memlets.
This analysis attempts to infer the memory layout of memlets using symbolic assumptions to interpret linearized subset expressions.
The technique is based on the algorithm described in: "Optimistic Delinearization of Parametrically Sized Arrays" by Grosser et al. https://dl.acm.org/doi/10.1145/2751205.2751248
| sdfg::analysis::MemoryLayoutAnalysis::MemoryLayoutAnalysis | ( | StructuredSDFG & | sdfg | ) |
| sdfg::analysis::MemoryLayoutAnalysis::MemoryLayoutAnalysis | ( | StructuredSDFG & | sdfg, |
| const Options & | options ) |
| const MemoryTile * sdfg::analysis::MemoryLayoutAnalysis::access | ( | const data_flow::Memlet & | memlet | ) | const |
Get the inferred memory layout for a memlet.
| memlet | The memlet to query |
|
overridevirtual |
Marks the subtree of changed and the scopes around it as out of date; queries compute them again.
Reimplemented from sdfg::analysis::Analysis.
|
inlineoverridevirtual |
Implements sdfg::analysis::Analysis.
|
overrideprotectedvirtual |
Implements sdfg::analysis::Analysis.
| const MemoryTile * sdfg::analysis::MemoryLayoutAnalysis::tile | ( | const structured_control_flow::ControlFlowNode & | scope, |
| const std::string & | container ) const |
Get the inferred memory layout for a container at a specific scope.
| scope | The structured control-flow scope to query (Sequence, IfElse, While, StructuredLoop) |
| container | The container name |
| const MemoryTileGroup * sdfg::analysis::MemoryLayoutAnalysis::tile_group_for | ( | const structured_control_flow::ControlFlowNode & | scope, |
| const data_flow::Memlet & | memlet ) const |
Get the tile group containing a specific memlet at a scope.
| scope | The structured control-flow scope to query |
| memlet | The memlet to find |
| const std::vector< MemoryTileGroup > * sdfg::analysis::MemoryLayoutAnalysis::tile_groups | ( | const structured_control_flow::ControlFlowNode & | scope, |
| const std::string & | container ) const |
Get tile groups for a container at a specific scope.
| scope | The structured control-flow scope to query |
| container | The container name |