|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Loop distribution (loop fission) transformation. More...
#include <sdfg/transformations/loop_distribute.h>
Public Member Functions | |
| LoopDistribute (structured_control_flow::StructuredLoop &loop, structured_control_flow::ControlFlowNode &child) | |
| Construct a loop distribute transformation. | |
| LoopDistribute (structured_control_flow::StructuredLoop &loop) | |
| Construct a loop distribute transformation on the first child of the loop. | |
| virtual std::string | name () const override |
| Get the name of this transformation. | |
| virtual bool | can_be_applied (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Check if this transformation can be applied. | |
| virtual void | apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Apply the loop distribute transformation. | |
| virtual void | to_json (nlohmann::json &j) const override |
| Serialize this transformation to JSON. | |
| Public Member Functions inherited from sdfg::transformations::Transformation | |
| virtual | ~Transformation ()=default |
| virtual void | set_report (PassReportConsumer *report) |
| Set the report consumer for transformation feedback. | |
| virtual bool | try_apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) |
| Attempt to apply the transformation if possible. | |
Static Public Member Functions | |
| static LoopDistribute | from_json (builder::StructuredSDFGBuilder &builder, const nlohmann::json &j) |
| Deserialize a loop distribute transformation from JSON. | |
Additional Inherited Members | |
| Protected Attributes inherited from sdfg::transformations::Transformation | |
| PassReportConsumer * | report_ = nullptr |
Loop distribution (loop fission) transformation.
This transformation splits a loop with multiple children into separate loops, each containing one child. This can enable better optimization opportunities by isolating different computations into separate loops.
Loop distribution is applied incrementally, distributing the first child into a separate loop each time it is applied.
| sdfg::transformations::LoopDistribute::LoopDistribute | ( | structured_control_flow::StructuredLoop & | loop, |
| structured_control_flow::ControlFlowNode & | child ) |
Construct a loop distribute transformation.
| loop | The loop to be distributed |
| child | The child to be distributed into a separate loop |
| sdfg::transformations::LoopDistribute::LoopDistribute | ( | structured_control_flow::StructuredLoop & | loop | ) |
Construct a loop distribute transformation on the first child of the loop.
| loop | The loop to be distributed |
|
overridevirtual |
Apply the loop distribute transformation.
| builder | The SDFG builder |
| analysis_manager | The analysis manager |
Implements sdfg::transformations::Transformation.
|
overridevirtual |
Check if this transformation can be applied.
| builder | The SDFG builder |
| analysis_manager | The analysis manager |
Implements sdfg::transformations::Transformation.
|
static |
Deserialize a loop distribute transformation from JSON.
| builder | The SDFG builder |
| j | JSON description of the transformation |
|
overridevirtual |
Get the name of this transformation.
Implements sdfg::transformations::Transformation.
|
overridevirtual |
Serialize this transformation to JSON.
| j | JSON object to populate |
Implements sdfg::transformations::Transformation.