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

#include <sdfg/analysis/memory_layout_analysis.h>

Public Member Functions

bool is_point () const
 A trivial (point) tile: a single index per dimension (min == max), as opposed to a bounded range.
const data_flow::Subset & upper_subset () const
 The upper index per dimension: max_subset, or min_subset for point tiles (which omit max_subset since it would equal min_subset).
symbolic::MultiExpression extents () const
 Per-dimension bounding box extents: max[d] - min[d] + 1.
symbolic::MultiExpression extents_approx () const
 Per-dimension extents with min/max resolved to upper bounds via overapproximation.
std::pair< symbolic::Expression, symbolic::Expression > contiguous_range () const
 First and last linear element addresses: offset + sum(stride[d] * idx[d]).

Public Attributes

std::string container
data_flow::Subset min_subset
data_flow::Subset max_subset
MemoryLayout layout
bool first_dim_bounded
bool pre_ranged = false

Member Function Documentation

◆ contiguous_range()

std::pair< symbolic::Expression, symbolic::Expression > sdfg::analysis::MemoryTile::contiguous_range ( ) const

First and last linear element addresses: offset + sum(stride[d] * idx[d]).

Returns {SymEngine::null, SymEngine::null} if either endpoint would depend on an unbounded leading-dimension sentinel (e.g. a layout whose strides reference an unknown shape entry). Callers MUST check .first.is_null() / .second.is_null() before using the result.

◆ extents()

symbolic::MultiExpression sdfg::analysis::MemoryTile::extents ( ) const

Per-dimension bounding box extents: max[d] - min[d] + 1.

Returns SymEngine::null in slot d if that extent would depend on an unbounded leading-dimension sentinel. Callers MUST check each entry for null before using it.

◆ extents_approx()

symbolic::MultiExpression sdfg::analysis::MemoryTile::extents_approx ( ) const

Per-dimension extents with min/max resolved to upper bounds via overapproximation.

Returns SymEngine::null in slot d if that extent would depend on an unbounded leading-dimension sentinel. Callers MUST check each entry for null.

◆ is_point()

bool sdfg::analysis::MemoryTile::is_point ( ) const

A trivial (point) tile: a single index per dimension (min == max), as opposed to a bounded range.

Point tiles leave max_subset empty.

◆ upper_subset()

const data_flow::Subset & sdfg::analysis::MemoryTile::upper_subset ( ) const
inline

The upper index per dimension: max_subset, or min_subset for point tiles (which omit max_subset since it would equal min_subset).

Member Data Documentation

◆ container

std::string sdfg::analysis::MemoryTile::container

◆ first_dim_bounded

bool sdfg::analysis::MemoryTile::first_dim_bounded

◆ layout

MemoryLayout sdfg::analysis::MemoryTile::layout

◆ max_subset

data_flow::Subset sdfg::analysis::MemoryTile::max_subset

◆ min_subset

data_flow::Subset sdfg::analysis::MemoryTile::min_subset

◆ pre_ranged

bool sdfg::analysis::MemoryTile::pre_ranged = false

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