docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
symbol_promotion.h
Go to the documentation of this file.
1
8
9#pragma once
10
11#include "sdfg/passes/pass.h"
12
13namespace sdfg {
14namespace passes {
15
33class SymbolPromotion : public Pass {
34private:
51 bool can_be_applied(
53 analysis::AnalysisManager& analysis_manager,
55 );
56
69 void apply(
71 analysis::AnalysisManager& analysis_manager,
74 );
75
90 bool is_safe_constant_assign(
92 );
93
94public:
99
104 std::string name() override;
105
117
131 as_symbol(const data_flow::DataFlowGraph& dataflow, const data_flow::Tasklet& tasklet, const std::string& op);
132};
133
134} // namespace passes
135} // namespace sdfg
Definition structured_sdfg.h:30
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 data_flow_graph.h:29
Simple computational operation in the dataflow graph.
Definition tasklet.h:348
std::string name() override
Returns the name of the pass.
virtual bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Executes the symbol promotion pass.
static symbolic::Expression as_symbol(const data_flow::DataFlowGraph &dataflow, const data_flow::Tasklet &tasklet, const std::string &op)
Converts a tasklet input operand to a symbolic expression.
SymbolPromotion()
Default constructor.
A control flow node representing a basic block with dataflow computations.
Definition block.h:42
A sequential container of control flow nodes.
Definition sequence.h:52
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
Definition function_builder.h:10
Definition approximate_math.h:12
Definition analysis.h:7