docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
einsum_passes.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
8#include "sdfg/passes/pass.h"
11
12namespace sdfg {
13namespace einsum {
14
16public:
17 virtual std::string name() override {
18 return "EinsumDetectionPass";
19 }
20
22};
23
25private:
26 PassReportConsumer* report_;
27
28public:
31 analysis::AnalysisManager& analysis_manager,
32 PassReportConsumer* report = nullptr
33 );
34
35 static std::string name() {
36 return "EinsumConversion";
37 }
38
39 virtual bool accept(structured_control_flow::Block& block) override;
40};
41
43
45public:
47
48 static std::string name() {
49 return "EinsumLower";
50 }
51
52 virtual bool accept(structured_control_flow::Block& block) override;
53};
54
56
71public:
78
83 static std::string name() {
84 return "EinsumExpansion";
85 };
86
93};
94
100
101} // namespace einsum
102} // 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
static std::string name()
Definition einsum_passes.h:35
EinsumConversion(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, PassReportConsumer *report=nullptr)
virtual bool accept(structured_control_flow::Block &block) override
Definition einsum_passes.h:15
virtual std::string name() override
Definition einsum_passes.h:17
virtual bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
static std::string name()
Get the pass name.
Definition einsum_passes.h:83
EinsumExpansion(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
Construct the expansion visitor.
bool accept(structured_control_flow::Block &node) override
Visit a block and attempt to expand its library nodes.
static std::string name()
Definition einsum_passes.h:48
virtual bool accept(structured_control_flow::Block &block) override
EinsumLower(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
Definition pass.h:11
Definition pass.h:55
A control flow node representing a basic block with dataflow computations.
Definition block.h:42
Definition structured_sdfg_visitor.h:53
Very specific implementation, that technically visits the SDFG of an StructuredSDFGBuilder and not ju...
Definition structured_sdfg_visitor.h:16
Library node definitions for calling functions beyond simple instructions.
Definition function_builder.h:10
Definition einsum.h:13
passes::VisitorPass< EinsumLower > EinsumLowerPass
Definition einsum_passes.h:55
passes::VisitorPass< EinsumExpansion > EinsumExpansionPass
Pass wrapper for the EinsumExpansion visitor.
Definition einsum_passes.h:99
passes::VisitorPass< EinsumConversion > EinsumConversionPass
Definition einsum_passes.h:42
Definition analysis.h:7