46 std::string
name()
override;
52 bool consider_dataflow_branching_;
100 std::unordered_map<std::string, AllocRec> unassigned_;
101 std::unordered_set<std::string> disqualified_;
102 std::vector<size_t> live_;
103 std::unordered_map<std::string, size_t> live_index_;
105 void add_edge(
size_t a,
size_t b);
108 void assign(
const std::string& container);
112 const std::string& container,
Definition structured_sdfg.h:30
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
Node representing access to a data container in the dataflow graph.
Definition access_node.h:84
Name does not match current function.
Definition data_offloading_node.h:49
bool visit_internal(structured_control_flow::Sequence &parent) override
BufferReuseMarker(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, analysis::Users &users)
std::vector< Candidate > candidates
Definition device_buffer_reuse_pass.h:91
std::vector< std::unordered_set< size_t > > adjacency
Definition device_buffer_reuse_pass.h:92
std::string name() override
bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
DeviceBufferReusePass(bool consider_dataflow_branching=false)
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
Very specific implementation, that technically visits the SDFG of an StructuredSDFGBuilder and not ju...
Definition structured_sdfg_visitor.h:16
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
PrimitiveType
Enumeration of all primitive data types supported by sdfglib.
Definition type.h:35
Definition base_user_visitor.h:5
Definition device_buffer_reuse_pass.h:75
offloading::DataOffloadingNode * node
Definition device_buffer_reuse_pass.h:77
structured_control_flow::Block * block
Definition device_buffer_reuse_pass.h:76
const data_flow::AccessNode * access
Definition device_buffer_reuse_pass.h:78
Definition device_buffer_reuse_pass.h:58
std::string container
Definition device_buffer_reuse_pass.h:59
offloading::DataOffloadingNode * alloc_node
Definition device_buffer_reuse_pass.h:64
structured_control_flow::Block * alloc_block
Definition device_buffer_reuse_pass.h:63
structured_control_flow::Block * free_block
Definition device_buffer_reuse_pass.h:67
symbolic::Expression size
Definition device_buffer_reuse_pass.h:61
types::PrimitiveType dtype
Definition device_buffer_reuse_pass.h:60
analysis::User * alloc_user
Definition device_buffer_reuse_pass.h:65
offloading::DataOffloadingNode * free_node
Definition device_buffer_reuse_pass.h:68
analysis::User * free_user
Definition device_buffer_reuse_pass.h:69
Core type system definitions for sdfglib.