24 mutable std::map<std::pair<const structured_control_flow::ControlFlowNode*, std::string>, std::optional<tiles::Tile>>
32 std::optional<tiles::Tile>
41 std::string
name()
const override {
42 return "TileAnalysis";
73 const std::string& container,
89 const std::string& container,
Definition structured_sdfg.h:30
Base class for all structured control flow nodes in a StructuredSDFG.
Definition control_flow_node.h:44
Base class for structured loop constructs.
Definition structured_loop.h:244
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.
TileAnalysis(StructuredSDFG &sdfg)
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.
void run(analysis::AnalysisManager &analysis_manager) override
std::string name() const override
Definition tile_analysis.h:41
A container's staged region: source maps a tile coordinate to the global element, axes is the thread/...
Definition tile.h:156
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
Analysis for inferring memory layouts of memlets.
Definition gpu_tile_target.h:13
const std::vector< analysis::MemoryTileGroup > * tile_groups(structured_control_flow::StructuredLoop &loop, const std::string &container, analysis::AnalysisManager &analysis_manager)
All tile groups MemoryLayoutAnalysis formed for container at loop (nullptr if none).
const analysis::MemoryTileGroup * localizable_tile(structured_control_flow::StructuredLoop &loop, const std::string &container, analysis::AnalysisManager &analysis_manager)
The single localizable tile group of container at loop, or nullptr.
bool is_constant_bounded(const analysis::MemoryTileGroup *group)
True iff group is a real tile whose extents are all compile-time integer constants (the constant-boun...
symbolic::Expression tile_element_count(const analysis::MemoryTileGroup *group)
Scalar slots a packed buffer for group would occupy (product of extents): a compile-time integer iff ...
Definition memory_layout_analysis.h:78
How a container is accessed within a loop, read straight off the dataflow (memlet types),...
Definition tile_analysis.h:50
bool aliased
the pointer escapes, is overwritten, or is captured by a library node
Definition tile_analysis.h:53
bool writes
a computational write of the container
Definition tile_analysis.h:52
bool reads
a computational read of the container
Definition tile_analysis.h:51
Schedule-aware tile vocabulary: a Tile is a Layout (geometry from MemoryLayoutAnalysis) partitioned o...