docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
omp_scheduler.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace sdfg {
6namespace passes {
7namespace scheduler {
8
9class OMPScheduler : public LoopScheduler {
10public:
13 analysis::AnalysisManager& analysis_manager,
15 bool offload_unknown_sizes = false
16 ) override;
17
20 analysis::AnalysisManager& analysis_manager,
22 bool offload_unknown_sizes = false
23 ) override;
24
27 analysis::AnalysisManager& analysis_manager,
29 bool offload_unknown_sizes = false
30 ) override;
31
34 analysis::AnalysisManager& analysis_manager,
36 bool offload_unknown_sizes = false
37 ) override;
38
41 analysis::AnalysisManager& analysis_manager,
42 std::vector<structured_control_flow::StructuredLoop*>& applicable_loops
43 ) override;
44
45 static std::string target() {
46 return "openmp";
47 };
48
49 std::unordered_set<ScheduleTypeCategory> compatible_types() override;
50};
51
52
53} // namespace scheduler
54} // namespace passes
55} // 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 loop_scheduler.h:27
Definition omp_scheduler.h:9
SchedulerAction find(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
Phase 1: Determine the action for a loop during loop discovery.
bool can_apply_schedule(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
Check if the scheduling transform can be applied to a loop.
SchedulerAction find(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::While &loop, bool offload_unknown_sizes=false) override
static std::string target()
Definition omp_scheduler.h:45
void pre_schedule(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::StructuredLoop * > &applicable_loops) override
Pre-scheduling phase: collapse and cleanup on the applicable loops.
void apply_schedule(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
Apply the scheduling transform to a single loop.
std::unordered_set< ScheduleTypeCategory > compatible_types() override
Base class for structured loop constructs.
Definition structured_loop.h:244
Represents a while-loop with condition-controlled iteration.
Definition while.h:37
Definition function_builder.h:10
Definition loop_scheduler.h:13
SchedulerAction
Definition loop_scheduler.h:15
Definition approximate_math.h:12
Definition analysis.h:7