|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Base class for dispatching control flow nodes to code. More...
#include <sdfg/codegen/dispatchers/node_dispatcher.h>
Public Member Functions | |
| NodeDispatcher (LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::ControlFlowNode &node, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan) | |
| virtual | ~NodeDispatcher ()=default |
| virtual void | dispatch_node (PrettyPrinter &main_stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory)=0 |
| InstrumentationInfo | instrumentation_info_for_group () const |
| virtual void | dispatch (PrettyPrinter &main_stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) |
Protected Member Functions | |
| virtual bool | begin_node (PrettyPrinter &stream) |
| virtual void | end_node (PrettyPrinter &stream, bool has_declaration) |
| virtual InstrumentationInfo | instrumentation_info () const |
| Bad design. | |
Base class for dispatching control flow nodes to code.
NodeDispatcher provides the interface for generating code from SDFG control flow nodes. Each node type has a corresponding dispatcher implementation that knows how to generate appropriate code for that node.
| sdfg::codegen::NodeDispatcher::NodeDispatcher | ( | LanguageExtension & | language_extension, |
| StructuredSDFG & | sdfg, | ||
| analysis::AnalysisManager & | analysis_manager, | ||
| structured_control_flow::ControlFlowNode & | node, | ||
| InstrumentationPlan & | instrumentation_plan, | ||
| ArgCapturePlan & | arg_capture_plan ) |
|
virtualdefault |
|
protectedvirtual |
|
virtual |
Reimplemented in sdfg::codegen::SchedTypeMapDispatcher, and sdfg::codegen::SchedTypeReduceDispatcher.
|
pure virtual |
Implemented in sdfg::codegen::AssignmentDispatcher, sdfg::codegen::BlockDispatcher, sdfg::codegen::BreakDispatcher, sdfg::codegen::ContinueDispatcher, sdfg::codegen::ForDispatcher, sdfg::codegen::IfElseDispatcher, sdfg::codegen::ReturnDispatcher, sdfg::codegen::SchedTypeMapDispatcher, sdfg::codegen::SchedTypeReduceDispatcher, sdfg::codegen::SequenceDispatcher, sdfg::codegen::SequentialMapDispatcher, sdfg::codegen::SequentialReduceDispatcher, sdfg::codegen::WhileDispatcher, sdfg::cuda::CUDAMapDispatcher, sdfg::gpu::GPUOffloadBaseDispatcher, sdfg::gpu::GPUReduceDispatcher, sdfg::omp::OMPMapDispatcher, sdfg::rocm::ROCMMapDispatcher, and sdfg::vectorize::VectorizeDispatcher.
|
protectedvirtual |
|
protectedvirtual |
Bad design.
We already have fields in this class and have to bind an instance to a single node. Just set a field to sth. of the instrumentation plan where the node can register more details. But this is a breaking change
Reimplemented in sdfg::codegen::ForDispatcher, sdfg::codegen::SchedTypeMapDispatcher, sdfg::codegen::SchedTypeReduceDispatcher, sdfg::codegen::SequentialMapDispatcher, sdfg::codegen::SequentialReduceDispatcher, sdfg::codegen::WhileDispatcher, sdfg::cuda::CUDAMapDispatcher, sdfg::gpu::GPUOffloadBaseDispatcher, sdfg::gpu::GPUReduceDispatcher, sdfg::omp::OMPMapDispatcher, sdfg::rocm::ROCMMapDispatcher, and sdfg::vectorize::VectorizeDispatcher.
| InstrumentationInfo sdfg::codegen::NodeDispatcher::instrumentation_info_for_group | ( | ) | const |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |