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

The ragged-tile boundary predicate, stored per-dim. More...

#include <sdfg/tiles/tiled_copy.h>

Classes

struct  Dim

Public Member Functions

bool trivial () const
symbolic::Condition predicate (const symbolic::MultiExpression &coords) const
 Predicate over explicit per-mode tile coordinates (one per tile_sizes).
symbolic::Condition predicate (const symbolic::Expression &flat) const
 Predicate over the flat index, row-major delinearized into tile_sizes.
void collect_symbols (symbolic::SymbolSet &set) const
void replace_symbols (const symbolic::ExpressionMapping &replacements)
bool discharge (const symbolic::SymbolSet &parameters, const symbolic::Assumptions &assumptions)
 Drop dims provably full (base + size - 1 <= max) under the assumptions; returns true if any dim was discharged or simplified.
bool simplify ()
 Simplify each dim's bound with simplify_tile_bound; returns true if any changed.

Public Attributes

symbolic::MultiExpression tile_sizes
 tile extents (the delinearization domain)
std::vector< Dim > dims
 un-discharged dims; empty ⇒ always valid

Detailed Description

The ragged-tile boundary predicate, stored per-dim.

An over-approximated tile may address out-of-bounds global memory on ragged blocks; the copy runs only where base + tile_coord <= max for every dim. Kept as a list of un-discharged dims (not a baked symbolic::Condition) so a later pass that proves a dim fully covering can re-discharge it — inheriting the guard simplification loop peeling / condition propagation give the map-nest form.

Member Function Documentation

◆ collect_symbols()

void sdfg::tiles::TileGuard::collect_symbols ( symbolic::SymbolSet & set) const

◆ discharge()

bool sdfg::tiles::TileGuard::discharge ( const symbolic::SymbolSet & parameters,
const symbolic::Assumptions & assumptions )

Drop dims provably full (base + size - 1 <= max) under the assumptions; returns true if any dim was discharged or simplified.

◆ predicate() [1/2]

symbolic::Condition sdfg::tiles::TileGuard::predicate ( const symbolic::Expression & flat) const

Predicate over the flat index, row-major delinearized into tile_sizes.

◆ predicate() [2/2]

symbolic::Condition sdfg::tiles::TileGuard::predicate ( const symbolic::MultiExpression & coords) const

Predicate over explicit per-mode tile coordinates (one per tile_sizes).

◆ replace_symbols()

void sdfg::tiles::TileGuard::replace_symbols ( const symbolic::ExpressionMapping & replacements)

◆ simplify()

bool sdfg::tiles::TileGuard::simplify ( )

Simplify each dim's bound with simplify_tile_bound; returns true if any changed.

◆ trivial()

bool sdfg::tiles::TileGuard::trivial ( ) const
inline

Member Data Documentation

◆ dims

std::vector<Dim> sdfg::tiles::TileGuard::dims

un-discharged dims; empty ⇒ always valid

◆ tile_sizes

symbolic::MultiExpression sdfg::tiles::TileGuard::tile_sizes

tile extents (the delinearization domain)


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