|
docc 0.8.3 (0d44999b)
C++ API 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 ¶meters, 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 | |
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.
| void sdfg::tiles::TileGuard::collect_symbols | ( | symbolic::SymbolSet & | set | ) | const |
| 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.
| symbolic::Condition sdfg::tiles::TileGuard::predicate | ( | const symbolic::Expression & | flat | ) | const |
Predicate over the flat index, row-major delinearized into tile_sizes.
| symbolic::Condition sdfg::tiles::TileGuard::predicate | ( | const symbolic::MultiExpression & | coords | ) | const |
Predicate over explicit per-mode tile coordinates (one per tile_sizes).
| void sdfg::tiles::TileGuard::replace_symbols | ( | const symbolic::ExpressionMapping & | replacements | ) |
| bool sdfg::tiles::TileGuard::simplify | ( | ) |
Simplify each dim's bound with simplify_tile_bound; returns true if any changed.
|
inline |
| std::vector<Dim> sdfg::tiles::TileGuard::dims |
un-discharged dims; empty ⇒ always valid
| symbolic::MultiExpression sdfg::tiles::TileGuard::tile_sizes |
tile extents (the delinearization domain)