docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
gpu_control_flow_offload_pass.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
6#include "sdfg/passes/pass.h"
9
10namespace sdfg {
11namespace passes {
12
15
16 static std::string name() {
17 return "CUDAControlFlowOffloadPass";
18 }
19
20 static bool is_gpu_implementation(const data_flow::ImplementationType& implementation_type);
21};
22
25
26 static std::string name() {
27 return "ROCMControlFlowOffloadPass";
28 }
29
30 static bool is_gpu_implementation(const data_flow::ImplementationType& implementation_type);
31};
32
42template<typename Traits>
44private:
45 bool allow_dynamic_sizes_;
46
47public:
48 explicit GPUControlFlowOffloadPass(bool allow_dynamic_sizes = false);
49 ~GPUControlFlowOffloadPass() override = default;
50
52
53 std::string name() override {
54 return Traits::name();
55 }
56};
57
60
61} // namespace passes
62} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Definition cuda_offload_transform.h:12
Offloads non-loop control flow directly nested in the SDFG root.
Definition gpu_control_flow_offload_pass.h:43
~GPUControlFlowOffloadPass() override=default
bool run_pass(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
GPUControlFlowOffloadPass(bool allow_dynamic_sizes=false)
std::string name() override
Definition gpu_control_flow_offload_pass.h:53
Definition rocm_offload_transform.h:12
Library node definitions for calling functions beyond simple instructions.
Definition function_builder.h:10
StringEnum ImplementationType
Implementation type identifier for library nodes.
Definition library_node.h:75
Definition approximate_math.h:12
GPUControlFlowOffloadPass< CUDAControlFlowOffloadTraits > CUDAControlFlowOffloadPass
Definition gpu_control_flow_offload_pass.h:58
GPUControlFlowOffloadPass< ROCMControlFlowOffloadTraits > ROCMControlFlowOffloadPass
Definition gpu_control_flow_offload_pass.h:59
Definition analysis.h:7
Definition gpu_control_flow_offload_pass.h:13
static bool is_gpu_implementation(const data_flow::ImplementationType &implementation_type)
static std::string name()
Definition gpu_control_flow_offload_pass.h:16
cuda::CUDAOffloadTransform OffloadTransform
Definition gpu_control_flow_offload_pass.h:14
Definition gpu_control_flow_offload_pass.h:23
rocm::ROCMOffloadTransform OffloadTransform
Definition gpu_control_flow_offload_pass.h:24
static bool is_gpu_implementation(const data_flow::ImplementationType &implementation_type)
static std::string name()
Definition gpu_control_flow_offload_pass.h:26