docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::codegen::SchedTypeReduceDispatcher Class Reference

Dispatches to the actual NodeDispatcher based on the Reduce's schedule type and the ReduceDispatcherRegistry. More...

#include <sdfg/codegen/dispatchers/reduce_dispatcher.h>

Inheritance diagram for sdfg::codegen::SchedTypeReduceDispatcher:
[legend]

Public Member Functions

 SchedTypeReduceDispatcher (LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::Reduce &node, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan)
void dispatch_node (PrettyPrinter &main_stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) override
void dispatch (PrettyPrinter &main_stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) override
InstrumentationInfo instrumentation_info () const override
 Bad design.
Public Member Functions inherited from 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)
virtual ~NodeDispatcher ()=default
InstrumentationInfo instrumentation_info_for_group () const

Additional Inherited Members

Protected Member Functions inherited from sdfg::codegen::NodeDispatcher
virtual bool begin_node (PrettyPrinter &stream)
virtual void end_node (PrettyPrinter &stream, bool has_declaration)
Protected Attributes inherited from sdfg::codegen::NodeDispatcher
LanguageExtension & language_extension_
StructuredSDFG & sdfg_
InstrumentationPlan & instrumentation_plan_
ArgCapturePlan & arg_capture_plan_
analysis::AnalysisManager & analysis_manager_

Detailed Description

Dispatches to the actual NodeDispatcher based on the Reduce's schedule type and the ReduceDispatcherRegistry.

Mirrors SchedTypeMapDispatcher: this is the dispatcher registered for typeid(structured_control_flow::Reduce) in the NodeDispatcherRegistry. It looks up the concrete, schedule-specific dispatcher (sequential, OpenMP, ...) in the ReduceDispatcherRegistry and delegates to it.

Constructor & Destructor Documentation

◆ SchedTypeReduceDispatcher()

sdfg::codegen::SchedTypeReduceDispatcher::SchedTypeReduceDispatcher ( LanguageExtension & language_extension,
StructuredSDFG & sdfg,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::Reduce & node,
InstrumentationPlan & instrumentation_plan,
ArgCapturePlan & arg_capture_plan )

Member Function Documentation

◆ dispatch()

void sdfg::codegen::SchedTypeReduceDispatcher::dispatch ( PrettyPrinter & main_stream,
PrettyPrinter & globals_stream,
CodeSnippetFactory & library_snippet_factory )
overridevirtual

Reimplemented from sdfg::codegen::NodeDispatcher.

◆ dispatch_node()

void sdfg::codegen::SchedTypeReduceDispatcher::dispatch_node ( PrettyPrinter & main_stream,
PrettyPrinter & globals_stream,
CodeSnippetFactory & library_snippet_factory )
inlineoverridevirtual

◆ instrumentation_info()

InstrumentationInfo sdfg::codegen::SchedTypeReduceDispatcher::instrumentation_info ( ) const
overridevirtual

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 from sdfg::codegen::NodeDispatcher.


The documentation for this class was generated from the following file: