docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
loop_interchange.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace sdfg {
9namespace transformations {
10
33 bool applied_ = false;
36
42 bool reduction_buffers_supported(analysis::AnalysisManager& analysis_manager) const;
43
44public:
52 );
53
58 virtual std::string name() const override;
59
69 LoopSwap proposal(analysis::AnalysisManager* analysis_manager = nullptr) const;
70
77 virtual bool
79
85 virtual void apply(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) override;
86
91 virtual void to_json(nlohmann::json& j) const override;
92
100
103};
104
105} // namespace transformations
106} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Base class for structured loop constructs.
Definition structured_loop.h:244
virtual void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Apply the loop interchange transformation.
virtual void to_json(nlohmann::json &j) const override
Serialize this transformation to JSON.
structured_control_flow::StructuredLoop * new_inner_loop() const
virtual std::string name() const override
Get the name of this transformation.
LoopInterchange(structured_control_flow::StructuredLoop &outer_loop, structured_control_flow::StructuredLoop &inner_loop)
Construct a loop interchange transformation.
LoopSwap proposal(analysis::AnalysisManager *analysis_manager=nullptr) const
Compute the interchanged loop headers without modifying the SDFG.
structured_control_flow::StructuredLoop * new_outer_loop() const
virtual bool can_be_applied(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Check if this transformation can be applied.
static LoopInterchange from_json(builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)
Deserialize a loop interchange transformation from JSON.
Base class for all SDFG transformations.
Definition transformation.h:25
Definition function_builder.h:10
Definition loop_parallelization.h:8
Definition analysis.h:7
Two directly nested loops and their headers after swapping them.
Definition loop_header.h:17