docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
plugin.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace sdfg {
9namespace tiles {
10
12 auto& libNodeSerRegistry = context.library_node_serializer_registry;
13
14 // Pipeline primitives
16 return std::make_unique<PipelineCommitNodeSerializer>();
17 });
18 libNodeSerRegistry.register_library_node_serializer(LibraryNodeType_PipelineWait.value(), []() {
19 return std::make_unique<PipelineWaitNodeSerializer>();
20 });
21 libNodeSerRegistry.register_library_node_serializer(LibraryNodeType_TileCopy.value(), []() {
22 return std::make_unique<TileCopyNodeSerializer>();
23 });
24
25 // Reference (host / sequential) dispatcher for the whole-copy TileCopyNode. GPU
26 // targets register their own impl-typed dispatcher for the cooperative/async atoms.
27 auto& libNodeDispRegistry = context.library_node_dispatcher_registry;
28 libNodeDispRegistry.register_library_node_dispatcher(
31 [](codegen::LanguageExtension& language_extension,
32 const Function& function,
33 const data_flow::DataFlowGraph& data_flow_graph,
34 const data_flow::LibraryNode& node) {
35 return std::make_unique<TileCopyNodeDispatcher>(
36 language_extension, function, data_flow_graph, static_cast<const TileCopyNode&>(node)
37 );
38 }
39 );
40}
41
49
50} // namespace tiles
51} // namespace sdfg
Definition function.h:43
Definition language_extension.h:39
void register_library_node_dispatcher(std::string library_node_code, LibraryNodeDispatcherFn fn)
Definition node_dispatcher_registry.h:264
Definition data_flow_graph.h:29
Base class for all library nodes in the dataflow graph.
Definition library_node.h:106
void register_library_node_serializer(std::string library_node_code, LibraryNodeSerializerFn fn)
A tiled copy carried as a value TiledCopy plan.
Definition tile_copy_node.h:28
ImplementationType ImplementationType_NONE
Default implementation type indicating no specific implementation.
Definition library_node.h:84
Definition gpu_tile_target.h:13
data_flow::LibraryNodeCode LibraryNodeType_PipelineWait
Definition pipeline_node.h:12
data_flow::LibraryNodeCode LibraryNodeType_PipelineCommit
Definition pipeline_node.h:11
void register_tiles_plugin()
Definition plugin.h:45
data_flow::LibraryNodeCode LibraryNodeType_TileCopy
Definition tile_copy_node.h:15
Definition analysis.h:7
TODO this class is broken.
Definition plugins.h:28
serializer::LibraryNodeSerializerRegistry & library_node_serializer_registry
Definition plugins.h:31
static Context global_context()
Definition plugins.h:99
codegen::LibraryNodeDispatcherRegistry & library_node_dispatcher_registry
Definition plugins.h:58