|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Registry system for dispatchers and library node dispatchers. More...
#include <mutex>#include <typeindex>#include <unordered_map>#include "sdfg/analysis/analysis.h"#include "sdfg/codegen/dispatchers/block_dispatcher.h"#include "sdfg/codegen/dispatchers/node_dispatcher.h"#include "sdfg/codegen/instrumentation/arg_capture_plan.h"#include "sdfg/codegen/instrumentation/instrumentation_plan.h"#include "sdfg/codegen/language_extension.h"#include "sdfg/structured_control_flow/reduce.h"Go to the source code of this file.
Classes | |
| class | sdfg::codegen::NodeDispatcherRegistry |
| class | sdfg::codegen::MapDispatcherRegistry |
| Registry for map-specific dispatchers based on schedule type. More... | |
| class | sdfg::codegen::ReduceDispatcherRegistry |
| Registry for reduce-specific dispatchers based on schedule type. More... | |
| class | sdfg::codegen::LibraryNodeDispatcherRegistry |
| Registry for library node dispatchers. More... | |
Namespaces | |
| namespace | sdfg |
| namespace | sdfg::codegen |
Typedefs | |
| using | sdfg::codegen::NodeDispatcherFn |
| using | sdfg::codegen::MapDispatcherFn |
| using | sdfg::codegen::ReduceDispatcherFn |
| using | sdfg::codegen::LibraryNodeDispatcherFn |
Functions | |
| std::unique_ptr< NodeDispatcher > | sdfg::codegen::create_dispatcher (LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::ControlFlowNode &node, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan) |
| void | sdfg::codegen::register_default_dispatchers () |
Registry system for dispatchers and library node dispatchers.
This file defines registry classes for dispatchers, allowing dynamic registration and lookup of code generation handlers for different node types and library nodes.
The registry system provides three main registries:
Each registry follows the singleton pattern and provides thread-safe registration and lookup of factory functions.
Library node dispatchers generate code for specific library operations. Each library node code (e.g., "GEMM", "Memcpy") can be registered with a custom dispatcher that knows how to generate the appropriate library call or implementation.
Registering a library node dispatcher: