|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Forward-propagates floating-point constant scalars into their uses. More...
#include <sdfg/passes/dataflow/constant_propagation.h>
Public Member Functions | |
| ConstantPropagation () | |
| virtual std::string | name () override |
| virtual 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 |
Forward-propagates floating-point constant scalars into their uses.
A scalar container that is defined by a single constant assignment (ConstantNode -> assign -> scalar) is treated as holding that constant. Every downstream computational read of the scalar is rewritten to read the constant directly, which in turn enables library-node simplifications (e.g. GEMM alpha == 1 / beta == 0) and later folding.
| sdfg::passes::ConstantPropagation::ConstantPropagation | ( | ) |
|
overridevirtual |
Implements sdfg::passes::Pass.
|
overridevirtual |
Reimplemented from sdfg::passes::Pass.