|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Pass that promotes simple dataflow computations to symbolic expressions. More...
#include <sdfg/passes/symbolic/symbol_promotion.h>
Public Member Functions | |
| SymbolPromotion () | |
| Default constructor. | |
| std::string | name () override |
| Returns the name of the pass. | |
| virtual bool | run_pass (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Executes the symbol promotion pass. | |
| 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) |
Static Public Member Functions | |
| static symbolic::Expression | as_symbol (const data_flow::DataFlowGraph &dataflow, const data_flow::Tasklet &tasklet, const std::string &op) |
| Converts a tasklet input operand to a symbolic expression. | |
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 promotes simple dataflow computations to symbolic expressions.
The SymbolPromotion pass identifies single-tasklet dataflow graphs that perform simple integer arithmetic operations and converts them into symbolic expressions represented as state transitions. This enables better symbolic analysis and optimization of control flow.
The pass applies to tasklets that meet the following criteria:
| sdfg::passes::SymbolPromotion::SymbolPromotion | ( | ) |
Default constructor.
|
static |
Converts a tasklet input operand to a symbolic expression.
Creates a symbolic expression for a tasklet input by examining its source:
| dataflow | The dataflow graph containing the tasklet |
| tasklet | The tasklet whose input to convert |
| op | The name of the input connector |
|
overridevirtual |
|
overridevirtual |
Executes the symbol promotion pass.
Traverses the structured SDFG and applies symbol promotion to all eligible blocks containing single-tasklet computations.
| builder | The SDFG builder |
| analysis_manager | The analysis manager |
Reimplemented from sdfg::passes::Pass.