docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
stride_minimization.h
Go to the documentation of this file.
1#pragma once
2
3#include <sdfg/passes/pass.h>
4
5namespace sdfg {
6namespace passes {
7namespace normalization {
8
10private:
11 std::pair<bool, std::vector<std::string>> can_be_applied(
13 analysis::AnalysisManager& analysis_manager,
14 std::vector<structured_control_flow::ControlFlowNode*>& nested_loops
15 );
16
17 void apply(
19 analysis::AnalysisManager& analysis_manager,
20 std::vector<structured_control_flow::ControlFlowNode*>& nested_loops,
21 std::vector<std::string> target_permutation
22 );
23
24public:
26
27 std::string name() override;
28
30
31 static bool is_admissible(
32 std::vector<std::string>& current,
33 std::vector<std::string>& target,
34 std::unordered_set<std::string>& allowed_swaps
35 );
36
37 static std::unordered_set<std::string> allowed_swaps(
39 analysis::AnalysisManager& analysis_manager,
40 std::vector<structured_control_flow::ControlFlowNode*>& nested_loops
41 );
42};
43
44} // namespace normalization
45} // namespace passes
46} // 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
Definition pass.h:11
static std::unordered_set< std::string > allowed_swaps(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::ControlFlowNode * > &nested_loops)
static bool is_admissible(std::vector< std::string > &current, std::vector< std::string > &target, std::unordered_set< std::string > &allowed_swaps)
virtual bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Definition function_builder.h:10
Definition loop_normal_form.h:8
Definition approximate_math.h:12
Definition analysis.h:7