docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
map_collapse.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace sdfg {
7namespace transformations {
8
29 size_t count_;
30 bool applied_ = false;
31
32 structured_control_flow::Map* collapsed_loop_ = nullptr;
33
35 bool check_perfect_nest();
36
59 bool check_imperfect(analysis::AnalysisManager& analysis_manager);
60
64 bool is_collapsible_inner_map(structured_control_flow::Map& map, const symbolic::Symbol& outer_indvar);
65
67 void apply_perfect(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager);
68
71 void apply_imperfect(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager);
72
73public:
80
85 virtual std::string name() const override;
86
93 virtual bool
95
101 virtual void apply(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) override;
102
107 virtual void to_json(nlohmann::json& j) const override;
108
116
121};
122
123} // namespace transformations
124} // 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
Represents a parallel map loop with configurable scheduling.
Definition map.h:47
MapCollapse(structured_control_flow::Map &loop, size_t count)
Construct a map collapse transformation.
static MapCollapse from_json(builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)
Deserialize a map collapse transformation from JSON.
virtual bool can_be_applied(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Check if this transformation can be applied.
structured_control_flow::Map * collapsed_loop()
Get the resulting collapsed map after the transformation has been applied.
virtual std::string name() const override
Get the name of this transformation.
virtual void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Apply the map collapse transformation.
virtual void to_json(nlohmann::json &j) const override
Serialize this transformation to JSON.
Base class for all SDFG transformations.
Definition transformation.h:25
SymEngine::RCP< const SymEngine::Symbol > Symbol
Reference-counted pointer to a SymEngine Symbol.
Definition symbolic.h:71
Definition function_builder.h:10
Definition loop_parallelization.h:8
Definition analysis.h:7