docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
multi_level_tiling.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <vector>
5
8
9namespace sdfg {
10namespace transformations {
11
24 std::vector<size_t> additional_tile_sizes_;
25
26 std::vector<structured_control_flow::StructuredLoop*> middle_loops_;
27
28public:
38 structured_control_flow::StructuredLoop& loop, size_t tile_size, size_t tile_size_2, bool simplify_bounds = true
39 );
40
50 const std::vector<size_t>& tile_sizes,
51 bool simplify_bounds = true
52 );
53
54 std::string name() const override;
55
57
59
60 void to_json(nlohmann::json& j) const override;
61
63
64 const std::vector<structured_control_flow::StructuredLoop*>& middle_loops();
65
67
69 [[deprecated("Use middle_loop with index instead")]] structured_control_flow::StructuredLoop* middle_loop();
70};
71
72} // namespace transformations
73} // 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
LoopTiling(structured_control_flow::StructuredLoop &loop, size_t tile_size, bool simplify_bounds=true)
Construct a loop tiling transformation.
std::string name() const override
Get the name of this transformation.
static MultiLevelTiling from_json(builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)
void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Apply the loop tiling transformation.
const std::vector< structured_control_flow::StructuredLoop * > & middle_loops()
structured_control_flow::StructuredLoop * middle_loop(size_t idx)
MultiLevelTiling(structured_control_flow::StructuredLoop &loop, size_t tile_size, size_t tile_size_2, bool simplify_bounds=true)
Construct a two-level loop tiling transformation.
void to_json(nlohmann::json &j) const override
Serialize this transformation to JSON.
MultiLevelTiling(structured_control_flow::StructuredLoop &loop, const std::vector< size_t > &tile_sizes, bool simplify_bounds=true)
Construct a multi-level loop tiling transformation.
bool can_be_applied(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Check if this transformation can be applied.
structured_control_flow::StructuredLoop * middle_loop()
Definition function_builder.h:10
Definition loop_parallelization.h:8
Definition analysis.h:7