|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Pass that propagates symbolic assignments through the SDFG. More...
#include <sdfg/passes/symbolic/symbol_propagation.h>
Public Member Functions | |
| SymbolPropagation () | |
| Constructs a new SymbolPropagation pass. | |
| virtual std::string | name () override |
| Returns the name of this pass. | |
| virtual bool | run_pass (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Executes the symbol propagation pass on the SDFG. | |
| 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 |
Pass that propagates symbolic assignments through the SDFG.
This pass performs forward and reverse propagation of symbolic expressions throughout the SDFG, replacing symbol uses with their assigned values where appropriate. It handles various SDFG elements including:
The pass performs two main operations:
Only transient integer scalar symbols are considered for propagation.
| sdfg::passes::SymbolPropagation::SymbolPropagation | ( | ) |
Constructs a new SymbolPropagation pass.
|
overridevirtual |
|
overridevirtual |
Executes the symbol propagation pass on the SDFG.
| builder | The structured SDFG builder containing the SDFG to optimize |
| analysis_manager | The analysis manager providing required analyses |
Reimplemented from sdfg::passes::Pass.