docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
target_mapping.h
Go to the documentation of this file.
1#pragma once
2#include <memory>
3
6
7namespace sdfg::plugins {
8
10
12public:
13 virtual ~TargetMapper() = default;
14 virtual bool try_map(
16 analysis::AnalysisManager& analysis_manager,
18 ) const = 0;
19 // don't cement this into the API before we have a use-case to test it well
20 // virtual std::unique_ptr<TargetMappingPlan> try_create_plan(data_flow::LibraryNode& node) const;
21 // virtual void apply_plan(data_flow::LibraryNode& node, std::unique_ptr<TargetMappingPlan> plan) const;
22};
23
25public:
26 virtual ~TargetMapperFactory() = default;
27 virtual std::unique_ptr<TargetMapper> create() const = 0;
28 virtual int priority() = 0;
29 virtual const std::string& for_target() const = 0;
30};
31
32
34public:
35 const std::vector<std::shared_ptr<TargetMapperFactory>> get_all_mappers();
36 void register_target_mapper(std::shared_ptr<TargetMapperFactory> factory);
37};
38
39} // namespace sdfg::plugins
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 target_mapping.h:24
virtual ~TargetMapperFactory()=default
virtual const std::string & for_target() const =0
virtual std::unique_ptr< TargetMapper > create() const =0
Definition target_mapping.h:33
const std::vector< std::shared_ptr< TargetMapperFactory > > get_all_mappers()
void register_target_mapper(std::shared_ptr< TargetMapperFactory > factory)
Definition target_mapping.h:11
virtual ~TargetMapper()=default
virtual bool try_map(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, data_flow::LibraryNode &node) const =0
Library node definitions for calling functions beyond simple instructions.
Definition function_builder.h:10
Definition plugins.h:17
Definition target_mapping.h:9