docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
loop_scheduling_pass.h
Go to the documentation of this file.
1#pragma once
2
4#include <sdfg/passes/pass.h>
5#include <string>
8
9namespace sdfg {
10namespace transformations {
11class Recorder;
12}
13namespace passes {
14namespace scheduler {
15
16class LoopSchedulingPass : public Pass {
17private:
18 std::vector<LoopScheduler*> targets_;
20 bool offload_unknown_sizes_;
21 sdfg::transformations::Recorder* recorder_ = nullptr;
22
23 bool run_pass_target(
25 );
26
27public:
29 const std::vector<LoopScheduler*>& targets, sdfg::PassReportConsumer* report, bool offload_unknown_sizes = false
30 )
31 : targets_(targets), report_(report), offload_unknown_sizes_(offload_unknown_sizes) {
32 }
33 ~LoopSchedulingPass() override = default;
34
42 recorder_ = recorder;
43 }
44
46
47 std::string name() override {
48 return "LoopSchedulingPass";
49 }
50};
51
52
53} // namespace scheduler
54} // namespace passes
55} // namespace sdfg
Definition pass_report_consumer.h:9
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
std::string name() override
Definition loop_scheduling_pass.h:47
void set_recorder(sdfg::transformations::Recorder *recorder)
Attach an optional Recorder that captures each scheduling transform.
Definition loop_scheduling_pass.h:41
bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
LoopSchedulingPass(const std::vector< LoopScheduler * > &targets, sdfg::PassReportConsumer *report, bool offload_unknown_sizes=false)
Definition loop_scheduling_pass.h:28
Records transformation history for replay and analysis.
Definition recorder.h:32
Definition function_builder.h:10
Definition loop_scheduler.h:13
Definition approximate_math.h:12
Definition loop_parallelization.h:8
Definition analysis.h:7