docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
block_dispatcher.h File Reference

Dispatchers for dataflow blocks and library nodes. More...

Go to the source code of this file.

Classes

class  sdfg::codegen::BlockDispatcher
class  sdfg::codegen::AssignmentDispatcher
class  sdfg::codegen::DataFlowDispatcher
struct  sdfg::codegen::CodegenOutput
struct  sdfg::codegen::DispatchInput
 Short-lived container for an input into a dispatcher (based on dflow edges) references are only valid up until the return of the dispatch call. More...
struct  sdfg::codegen::DispatchOutput
class  sdfg::codegen::LibraryNodeDispatcher
 Base class for library node code generation dispatchers. More...

Namespaces

namespace  sdfg
namespace  sdfg::codegen

Detailed Description

Dispatchers for dataflow blocks and library nodes.

This file defines dispatchers for generating code from dataflow blocks and library nodes. It includes:

  • BlockDispatcher: Generates code for blocks containing dataflow
  • DataFlowDispatcher: Generates code for dataflow graphs
  • LibraryNodeDispatcher: Base class for library node code generation

Library Node Dispatchers

LibraryNodeDispatcher is the base class for generating code from library nodes. Each library node type can have a custom dispatcher registered in the LibraryNodeDispatcherRegistry. The dispatcher is responsible for:

  • Generating the appropriate library call or inline code
  • Handling input/output data access
  • Managing implementation-specific details

Dispatchers work together with the library node's implementation_type:

  • If implementation_type is NONE, the node may be expanded first
  • If implementation_type specifies a library (e.g., BLAS), the dispatcher generates a call to that library
See also
node_dispatcher_registry.h for dispatcher registration
data_flow::LibraryNode for library node definition