docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::transformations::LocalStorage::TileInfo Struct Reference

Normalized tile description handed from can_be_applied() to apply(). More...

#include <sdfg/tiles/transformations/local_storage.h>

Public Member Functions

std::vector< size_t > varying_dims () const
 Indices of the varying (extent > 1) dims, in dimension order.
std::vector< symbolic::Expression > varying_sizes () const
 Extents of the varying dims, in dimension order.
tiles::Layout source_layout () const
 The source geometry as a tiles tiles::Layout over the varying tile coordinate (shape = varying extents, strides = varying dims' strides, offset = layout offset with each dim's base*stride folded in).
std::vector< symbolic::Expression > original_subset (const std::vector< symbolic::Expression > &tile_indices) const
 Container linear address for per-varying-dim tile_indices (extent-1 dims use their base).
std::vector< symbolic::Expression > local_index (const std::vector< symbolic::Expression > &access_subset) const
 Per-varying-dim local tile index (access_subset[d] - base[d]) for a body access.

Public Attributes

std::vector< symbolic::Expression > dimensions
 Overapproximated integer extents per delinearized dimension.
std::vector< symbolic::Expression > bases
 Tile min indices per dimension (bases for index subtraction).
std::vector< symbolic::Expression > maxes
 Tile max valid indices per dimension (from MemoryTile::max_subset), e.g.
std::vector< symbolic::Expression > strides
 Layout strides from MemoryLayoutAnalysis (original re-linearization).
symbolic::Expression offset = symbolic::integer(0)
 Layout offset from MemoryLayoutAnalysis.

Detailed Description

Normalized tile description handed from can_be_applied() to apply().

Member Function Documentation

◆ local_index()

std::vector< symbolic::Expression > sdfg::transformations::LocalStorage::TileInfo::local_index ( const std::vector< symbolic::Expression > & access_subset) const

Per-varying-dim local tile index (access_subset[d] - base[d]) for a body access.

Pure; unit-testable.

◆ original_subset()

std::vector< symbolic::Expression > sdfg::transformations::LocalStorage::TileInfo::original_subset ( const std::vector< symbolic::Expression > & tile_indices) const

Container linear address for per-varying-dim tile_indices (extent-1 dims use their base).

Pure; unit-testable.

◆ source_layout()

tiles::Layout sdfg::transformations::LocalStorage::TileInfo::source_layout ( ) const

The source geometry as a tiles tiles::Layout over the varying tile coordinate (shape = varying extents, strides = varying dims' strides, offset = layout offset with each dim's base*stride folded in).

So source_layout().apply_coords(tile_indices) == original_subset.

◆ varying_dims()

std::vector< size_t > sdfg::transformations::LocalStorage::TileInfo::varying_dims ( ) const

Indices of the varying (extent > 1) dims, in dimension order.

The degenerate extent-1 dims collapse to their base and carry no buffer axis.

◆ varying_sizes()

std::vector< symbolic::Expression > sdfg::transformations::LocalStorage::TileInfo::varying_sizes ( ) const

Extents of the varying dims, in dimension order.

Member Data Documentation

◆ bases

std::vector<symbolic::Expression> sdfg::transformations::LocalStorage::TileInfo::bases

Tile min indices per dimension (bases for index subtraction).

◆ dimensions

std::vector<symbolic::Expression> sdfg::transformations::LocalStorage::TileInfo::dimensions

Overapproximated integer extents per delinearized dimension.

◆ maxes

std::vector<symbolic::Expression> sdfg::transformations::LocalStorage::TileInfo::maxes

Tile max valid indices per dimension (from MemoryTile::max_subset), e.g.

min(_s0-1, base+extent-1, ...). Used to element-predicate global copies so the over-approximated tile never touches out-of-bounds memory.

◆ offset

symbolic::Expression sdfg::transformations::LocalStorage::TileInfo::offset = symbolic::integer(0)

Layout offset from MemoryLayoutAnalysis.

◆ strides

std::vector<symbolic::Expression> sdfg::transformations::LocalStorage::TileInfo::strides

Layout strides from MemoryLayoutAnalysis (original re-linearization).


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