docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::codegen::InstrumentationPlan Class Reference

#include <sdfg/codegen/instrumentation/instrumentation_plan.h>

Classes

struct  GroupSpan

Public Member Functions

 InstrumentationPlan (StructuredSDFG &sdfg, const std::unordered_set< const Element * > &nodes, bool emit_finalize_all=true, bool sampling=false)
 InstrumentationPlan (const InstrumentationPlan &other)=delete
 InstrumentationPlan (InstrumentationPlan &&other)=delete
InstrumentationPlan & operator= (const InstrumentationPlan &other)=delete
InstrumentationPlan & operator= (InstrumentationPlan &&other)=delete
bool is_empty () const
bool sampling () const
bool should_instrument (const Element &node) const
void begin_instrumentation (const Element &node, PrettyPrinter &stream, LanguageExtension &language_extension, const InstrumentationInfo &info) const
void end_instrumentation (const Element &node, PrettyPrinter &stream, LanguageExtension &language_extension, const InstrumentationInfo &info) const
void leaving_instrumentation_function (PrettyPrinter &stream, LanguageExtension &language_extension) const
void insert (const Element *node)
std::optional< ElementId > logical_region_id (const Element &node) const
std::optional< ElementId > source_loop_id (const Element &node) const
std::optional< nlohmann::json > expected_performance (const Element &node) const
std::optional< double > vector_distance (const Element &node) const
const GroupSpan * group_span_starting_at (const structured_control_flow::ControlFlowNode &node) const
bool is_group_member (const structured_control_flow::ControlFlowNode &node) const

Static Public Member Functions

static std::unique_ptr< InstrumentationPlan > none (StructuredSDFG &sdfg)
static std::unique_ptr< InstrumentationPlan > outermost_loops_plan (StructuredSDFG &sdfg, bool emit_finalize_all=true, bool sampling=false)
static std::unique_ptr< InstrumentationPlan > provenance_grouped_outermost_loops_plan (StructuredSDFG &sdfg, bool emit_finalize_all=true, bool sampling=false)

Protected Attributes

StructuredSDFG & sdfg_
std::unordered_set< const Element * > nodes_
std::unordered_map< const Element *, ElementId > logical_region_ids_
std::vector< GroupSpan > group_spans_
std::unordered_map< const structured_control_flow::ControlFlowNode *, size_t > group_start_by_node_
std::unordered_set< const structured_control_flow::ControlFlowNode * > grouped_members_
bool emit_finalize_all_
bool sampling_

Constructor & Destructor Documentation

◆ InstrumentationPlan() [1/3]

sdfg::codegen::InstrumentationPlan::InstrumentationPlan ( StructuredSDFG & sdfg,
const std::unordered_set< const Element * > & nodes,
bool emit_finalize_all = true,
bool sampling = false )
inline

◆ InstrumentationPlan() [2/3]

sdfg::codegen::InstrumentationPlan::InstrumentationPlan ( const InstrumentationPlan & other)
delete

◆ InstrumentationPlan() [3/3]

sdfg::codegen::InstrumentationPlan::InstrumentationPlan ( InstrumentationPlan && other)
delete

Member Function Documentation

◆ begin_instrumentation()

void sdfg::codegen::InstrumentationPlan::begin_instrumentation ( const Element & node,
PrettyPrinter & stream,
LanguageExtension & language_extension,
const InstrumentationInfo & info ) const

◆ end_instrumentation()

void sdfg::codegen::InstrumentationPlan::end_instrumentation ( const Element & node,
PrettyPrinter & stream,
LanguageExtension & language_extension,
const InstrumentationInfo & info ) const

◆ expected_performance()

std::optional< nlohmann::json > sdfg::codegen::InstrumentationPlan::expected_performance ( const Element & node) const
inline

◆ group_span_starting_at()

const GroupSpan * sdfg::codegen::InstrumentationPlan::group_span_starting_at ( const structured_control_flow::ControlFlowNode & node) const
inline

◆ insert()

void sdfg::codegen::InstrumentationPlan::insert ( const Element * node)
inline

◆ is_empty()

bool sdfg::codegen::InstrumentationPlan::is_empty ( ) const
inline

◆ is_group_member()

bool sdfg::codegen::InstrumentationPlan::is_group_member ( const structured_control_flow::ControlFlowNode & node) const
inline

◆ leaving_instrumentation_function()

void sdfg::codegen::InstrumentationPlan::leaving_instrumentation_function ( PrettyPrinter & stream,
LanguageExtension & language_extension ) const

◆ logical_region_id()

std::optional< ElementId > sdfg::codegen::InstrumentationPlan::logical_region_id ( const Element & node) const
inline

◆ none()

std::unique_ptr< InstrumentationPlan > sdfg::codegen::InstrumentationPlan::none ( StructuredSDFG & sdfg)
static

◆ operator=() [1/2]

InstrumentationPlan & sdfg::codegen::InstrumentationPlan::operator= ( const InstrumentationPlan & other)
delete

◆ operator=() [2/2]

InstrumentationPlan & sdfg::codegen::InstrumentationPlan::operator= ( InstrumentationPlan && other)
delete

◆ outermost_loops_plan()

std::unique_ptr< InstrumentationPlan > sdfg::codegen::InstrumentationPlan::outermost_loops_plan ( StructuredSDFG & sdfg,
bool emit_finalize_all = true,
bool sampling = false )
static

◆ provenance_grouped_outermost_loops_plan()

std::unique_ptr< InstrumentationPlan > sdfg::codegen::InstrumentationPlan::provenance_grouped_outermost_loops_plan ( StructuredSDFG & sdfg,
bool emit_finalize_all = true,
bool sampling = false )
static

◆ sampling()

bool sdfg::codegen::InstrumentationPlan::sampling ( ) const
inline

◆ should_instrument()

bool sdfg::codegen::InstrumentationPlan::should_instrument ( const Element & node) const

◆ source_loop_id()

std::optional< ElementId > sdfg::codegen::InstrumentationPlan::source_loop_id ( const Element & node) const
inline

◆ vector_distance()

std::optional< double > sdfg::codegen::InstrumentationPlan::vector_distance ( const Element & node) const
inline

Member Data Documentation

◆ emit_finalize_all_

bool sdfg::codegen::InstrumentationPlan::emit_finalize_all_
protected

◆ group_spans_

std::vector<GroupSpan> sdfg::codegen::InstrumentationPlan::group_spans_
protected

◆ group_start_by_node_

std::unordered_map<const structured_control_flow::ControlFlowNode*, size_t> sdfg::codegen::InstrumentationPlan::group_start_by_node_
protected

◆ grouped_members_

std::unordered_set<const structured_control_flow::ControlFlowNode*> sdfg::codegen::InstrumentationPlan::grouped_members_
protected

◆ logical_region_ids_

std::unordered_map<const Element*, ElementId> sdfg::codegen::InstrumentationPlan::logical_region_ids_
protected

◆ nodes_

std::unordered_set<const Element*> sdfg::codegen::InstrumentationPlan::nodes_
protected

◆ sampling_

bool sdfg::codegen::InstrumentationPlan::sampling_
protected

◆ sdfg_

StructuredSDFG& sdfg::codegen::InstrumentationPlan::sdfg_
protected

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