|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Re-discharge every TileCopyNode's ragged boundary guard. More...
#include <sdfg/tiles/transformations/tile_guard_normalization.h>
Public Member Functions | |
| TileGuardNormalization ()=default | |
| std::string | name () override |
| bool | run_pass (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Public Member Functions inherited from sdfg::passes::Pass | |
| Pass ()=default | |
| Pass (const Options &options) | |
| virtual | ~Pass ()=default |
| virtual std::vector< OptionSpec > | options () |
| bool | run (builder::SDFGBuilder &builder, bool create_report=false) |
| bool | run (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, bool create_report=false) |
| virtual bool | run_pass (builder::SDFGBuilder &builder) |
| virtual void | invalidates (analysis::AnalysisManager &analysis_manager, bool applied) |
Additional Inherited Members | |
| Protected Member Functions inherited from sdfg::passes::Pass | |
| template<class T> | |
| T | option (const OptionKey< T > &key, T fallback=T{}) const |
Re-discharge every TileCopyNode's ragged boundary guard.
A copy node's boundary guard is set when LocalStorage runs, from the assumptions available then. When a later pass — loop peeling, condition propagation — proves a tile dimension fully covering, this pass drops the now-redundant guard dims (via TileCopyNode::normalize_guard against the current AssumptionsAnalysis), so a node copy inherits the same guard simplification the old map-nest copy got for free. Safe to run repeatedly; only ever removes provably-redundant predicates.
|
default |
|
inlineoverridevirtual |
Implements sdfg::passes::Pass.
|
overridevirtual |
Reimplemented from sdfg::passes::Pass.