docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
pipeline.h
Go to the documentation of this file.
1#pragma once
2
11#include "sdfg/passes/pass.h"
19
20namespace sdfg {
21namespace passes {
22
23class Pipeline : public Pass {
24private:
25 std::vector<std::unique_ptr<Pass>> passes_;
26 std::string name_;
27 bool debug_logging_ = false;
28
29public:
30 Pipeline(const std::string& name);
31
32 void set_debug_logging(bool enable);
33
34 virtual std::string name();
35
36 size_t size() const;
37
39
41
42 template<class T, typename... Args>
43 void register_pass(Args&&... args) {
44 this->passes_.push_back(std::make_unique<T>(std::forward<Args>(args)...));
45 };
46
47 static Pipeline dataflow_simplification(bool block_fusion_ignor_libnodes = false);
48
50
52
54
56
58
59 static Pipeline memory();
60
62};
63
64} // namespace passes
65} // namespace sdfg
Definition analysis.h:53
Definition sdfg_builder.h:13
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
static Pipeline memlet_combine()
virtual bool run(builder::SDFGBuilder &builder)
Pipeline(const std::string &name)
static Pipeline dead_code_elimination()
static Pipeline dataflow_simplification(bool block_fusion_ignor_libnodes=false)
static Pipeline symbolic_simplification()
void set_debug_logging(bool enable)
virtual bool run(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
static Pipeline controlflow_simplification()
static Pipeline constant_elimination()
static Pipeline memory()
size_t size() const
void register_pass(Args &&... args)
Definition pipeline.h:43
virtual std::string name()
static Pipeline expression_combine()
Definition function_builder.h:10
Definition approximate_math.h:12
Definition analysis.h:7