docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::passes::scheduler::VectorizeScheduler Class Reference

#include <sdfg/passes/scheduler/vectorize_scheduler.h>

Inheritance diagram for sdfg::passes::scheduler::VectorizeScheduler:
[legend]

Public Member Functions

SchedulerAction find (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
 Phase 1: Determine the action for a loop during loop discovery.
SchedulerAction find (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::While &loop, bool offload_unknown_sizes=false) override
bool can_apply_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
 Check if the scheduling transform can be applied to a loop.
void apply_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override
 Apply the scheduling transform to a single loop.
std::unordered_set< ScheduleTypeCategory > compatible_types () override
Public Member Functions inherited from sdfg::passes::scheduler::LoopScheduler
virtual ~LoopScheduler ()=default
virtual void pre_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::StructuredLoop * > &applicable_loops)
 Pre-scheduling phase: collapse and cleanup on the applicable loops.
virtual bool post_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::StructuredLoop * > &scheduled_loops)
 Post-scheduling phase: additional transforms on the scheduled loops.
virtual void set_report (PassReportConsumer *report)
virtual void set_recorder (transformations::Recorder *recorder)
 Attach an optional Recorder that captures each scheduling transform applied via apply_schedule as a replayable descriptor.

Static Public Member Functions

static std::string target ()

Additional Inherited Members

Protected Attributes inherited from sdfg::passes::scheduler::LoopScheduler
PassReportConsumer * report_ = nullptr
transformations::Recorder * recorder_ = nullptr

Member Function Documentation

◆ apply_schedule()

void sdfg::passes::scheduler::VectorizeScheduler::apply_schedule ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::StructuredLoop & loop,
bool offload_unknown_sizes = false )
overridevirtual

Apply the scheduling transform to a single loop.

Called only on loops that passed can_apply_schedule().

Implements sdfg::passes::scheduler::LoopScheduler.

◆ can_apply_schedule()

bool sdfg::passes::scheduler::VectorizeScheduler::can_apply_schedule ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::StructuredLoop & loop,
bool offload_unknown_sizes = false )
overridevirtual

Check if the scheduling transform can be applied to a loop.

Called after pre_schedule. Used to filter the applicable loops before applying.

Implements sdfg::passes::scheduler::LoopScheduler.

◆ compatible_types()

std::unordered_set< ScheduleTypeCategory > sdfg::passes::scheduler::VectorizeScheduler::compatible_types ( )
overridevirtual

◆ find() [1/2]

SchedulerAction sdfg::passes::scheduler::VectorizeScheduler::find ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::StructuredLoop & loop,
bool offload_unknown_sizes = false )
overridevirtual

Phase 1: Determine the action for a loop during loop discovery.

Returns NEXT if the loop should be scheduled (added to the applicable set), CHILDREN if the scheduler should descend into child loops instead, or SKIP if the loop already carries a non-None schedule and must be left untouched (neither scheduled nor traversed into).

Implements sdfg::passes::scheduler::LoopScheduler.

◆ find() [2/2]

SchedulerAction sdfg::passes::scheduler::VectorizeScheduler::find ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::While & loop,
bool offload_unknown_sizes = false )
overridevirtual

◆ target()

std::string sdfg::passes::scheduler::VectorizeScheduler::target ( )
inlinestatic

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