docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
block_sorting.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <utility>
5
9#include "sdfg/passes/pass.h"
13
14namespace sdfg {
15namespace passes {
16
17class BlockSortingPass : public Pass {
18protected:
20
23
24 virtual std::pair<int, std::string> get_prio_and_order(structured_control_flow::Block* block);
25
27
29
30public:
31 virtual std::string name() override {
32 return "BlockSorting";
33 }
34
37 analysis::AnalysisManager& analysis_manager,
39 long long index
40 );
43 analysis::AnalysisManager& analysis_manager,
45 long long index
46 );
47
48 bool sort(
50 analysis::AnalysisManager& analysis_manager,
52 );
53
55};
56
57} // namespace passes
58} // 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
Base class for all library nodes in the dataflow graph.
Definition library_node.h:106
Definition block_sorting.h:17
virtual bool can_be_bubbled_down(structured_control_flow::Block &block)
bool sort(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::Sequence &sequence)
virtual bool can_be_bubbled_up(structured_control_flow::Block &block)
virtual bool is_libnode_side_effect_white_listed(data_flow::LibraryNode *libnode)
virtual std::pair< int, std::string > get_prio_and_order(structured_control_flow::Block *block)
bool bubble_up(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::Sequence &sequence, long long index)
bool is_libnode_block(structured_control_flow::Block &next_block)
virtual bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
bool is_reference_block(structured_control_flow::Block &block)
virtual std::string name() override
Definition block_sorting.h:31
bool bubble_down(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::Sequence &sequence, long long index)
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
Library node definitions for calling functions beyond simple instructions.
Definition function_builder.h:10
Definition approximate_math.h:12
Definition analysis.h:7