docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::passes::GPUControlFlowOffloadPass< Traits > Class Template Reference

Offloads non-loop control flow directly nested in the SDFG root. More...

#include <sdfg/passes/offloading/gpu_control_flow_offload_pass.h>

Inheritance diagram for sdfg::passes::GPUControlFlowOffloadPass< Traits >:
[legend]

Public Member Functions

 GPUControlFlowOffloadPass (bool allow_dynamic_sizes=false)
 ~GPUControlFlowOffloadPass () override=default
bool run_pass (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
std::string name () override
Public Member Functions inherited from sdfg::passes::Pass
 Pass ()=default
 Pass (const Options &options)
virtual ~Pass ()=default
virtual std::vector< OptionSpec > options ()
bool run (builder::SDFGBuilder &builder, bool create_report=false)
bool run (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, bool create_report=false)
virtual bool run_pass (builder::SDFGBuilder &builder)
virtual void invalidates (analysis::AnalysisManager &analysis_manager, bool applied)

Additional Inherited Members

Protected Member Functions inherited from sdfg::passes::Pass
template<class T>
T option (const OptionKey< T > &key, T fallback=T{}) const

Detailed Description

template<typename Traits>
class sdfg::passes::GPUControlFlowOffloadPass< Traits >

Offloads non-loop control flow directly nested in the SDFG root.

Maximal runs of consecutive eligible root children (Block, IfElse, While, Sequence) are wrapped into a single-iteration Map and offloaded via Traits::OffloadTransform. A child is eligible if its subtree contains no Return, no scheduled loop, no data offloading node and no GPU-implemented library node. If a run cannot be offloaded, it is restored and each of its children is retried on its own.

Constructor & Destructor Documentation

◆ GPUControlFlowOffloadPass()

template<typename Traits>
sdfg::passes::GPUControlFlowOffloadPass< Traits >::GPUControlFlowOffloadPass ( bool allow_dynamic_sizes = false)
explicit

◆ ~GPUControlFlowOffloadPass()

template<typename Traits>
sdfg::passes::GPUControlFlowOffloadPass< Traits >::~GPUControlFlowOffloadPass ( )
overridedefault

Member Function Documentation

◆ name()

template<typename Traits>
std::string sdfg::passes::GPUControlFlowOffloadPass< Traits >::name ( )
inlineoverridevirtual

Implements sdfg::passes::Pass.

◆ run_pass()

template<typename Traits>
bool sdfg::passes::GPUControlFlowOffloadPass< Traits >::run_pass ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager )
overridevirtual

Reimplemented from sdfg::passes::Pass.


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