docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
cpp_code_generator.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace sdfg {
8namespace codegen {
9
15
17private:
18 CPPLanguageExtension language_extension_;
19 GlobalConstructor global_constructor_;
20
21protected:
23
25
26 void dispatch_globals() override;
27
28 void dispatch_schedule() override;
29
31 return language_extension_;
32 }
33
34public:
37 analysis::AnalysisManager& analysis_manager,
38 InstrumentationPlan& instrumentation_plan,
39 ArgCapturePlan& arg_capture_plan,
40 std::shared_ptr<CodeSnippetFactory> library_snippet_factory = std::make_shared<CodeSnippetFactory>(),
41 const std::string& externals_prefix = "",
43 )
45 sdfg,
46 analysis_manager,
47 instrumentation_plan,
48 arg_capture_plan,
49 std::move(library_snippet_factory),
50 externals_prefix
51 ),
52 language_extension_(sdfg, externals_prefix), global_constructor_(global_constructor) {
53 }
54
55 std::string function_definition() override;
56
57 void emit_capture_context_init(std::ostream& ofs_source) const override;
58};
59
60} // namespace codegen
61} // namespace sdfg
Definition structured_sdfg.h:30
Definition analysis.h:53
Definition arg_capture_plan.h:36
LanguageExtension & language_extension() override
Definition cpp_code_generator.h:30
void dispatch_header_structures(PrettyPrinter &out) override
void dispatch_header_includes(PrettyPrinter &out) override
std::string function_definition() override
Generate a function definition for the SDFG.
CPPCodeGenerator(StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan, std::shared_ptr< CodeSnippetFactory > library_snippet_factory=std::make_shared< CodeSnippetFactory >(), const std::string &externals_prefix="", GlobalConstructor global_constructor=GlobalConstructor::None)
Definition cpp_code_generator.h:35
void emit_capture_context_init(std::ostream &ofs_source) const override
Definition cpp_language_extension.h:14
CStyleBaseCodeGenerator(StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan, std::shared_ptr< CodeSnippetFactory > library_snippet_factory=std::make_shared< CodeSnippetFactory >(), const std::string &externals_prefix="")
Definition instrumentation_plan.h:26
Definition language_extension.h:39
Definition utils.h:16
Definition argument_registry.h:10
GlobalConstructor
Optional GPU-runtime context warmup emitted as a .so-load constructor.
Definition cpp_code_generator.h:14
@ ROCM
Definition cpp_code_generator.h:14
@ None
Definition cpp_code_generator.h:14
@ CUDA
Definition instrumentation_info.h:20
Definition analysis.h:7