3#include <unordered_map>
39 std::unordered_map<const structured_control_flow::ControlFlowNode*, std::unordered_map<std::string, CaptureVarPlan>>
42 static bool add_capture_plan(
46 const std::string& var_name,
50 std::unordered_map<std::string, CaptureVarPlan>& plan
56 const std::unordered_map<
58 std::unordered_map<std::string, CaptureVarPlan>>& nodes
60 : sdfg_(
sdfg), nodes_(nodes) {
64 return nodes_.empty();
84 const std::unordered_map<std::string, CaptureVarPlan>& plan,
86 std::string element_id
Definition structured_sdfg.h:30
static std::unique_ptr< ArgCapturePlan > none(StructuredSDFG &sdfg)
void emit_arg_captures(PrettyPrinter &stream, LanguageExtension &language_extension, const std::unordered_map< std::string, CaptureVarPlan > &plan, bool after, std::string element_id) const
static std::unique_ptr< ArgCapturePlan > root(StructuredSDFG &sdfg)
void end_instrumentation(const structured_control_flow::ControlFlowNode &node, PrettyPrinter &stream, LanguageExtension &language_extension) const
bool should_instrument(const structured_control_flow::ControlFlowNode &node) const
ArgCapturePlan(StructuredSDFG &sdfg, const std::unordered_map< const structured_control_flow::ControlFlowNode *, std::unordered_map< std::string, CaptureVarPlan > > &nodes)
Definition arg_capture_plan.h:54
bool is_empty() const
Definition arg_capture_plan.h:63
static std::unordered_map< std::string, CaptureVarPlan > create_capture_plan(StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::ControlFlowNode &node)
static std::unique_ptr< ArgCapturePlan > outermost_loops_plan(StructuredSDFG &sdfg)
void begin_instrumentation(const structured_control_flow::ControlFlowNode &node, PrettyPrinter &stream, LanguageExtension &language_extension) const
const bool capture_output
Definition arg_capture_plan.h:17
CaptureVarPlan(bool capture_input, bool capture_output, int arg_idx, bool is_external, sdfg::types::PrimitiveType inner_type, const symbolic::Expression size, bool is_scalar)
const bool is_external
Definition arg_capture_plan.h:19
const sdfg::types::PrimitiveType inner_type
Definition arg_capture_plan.h:23
const symbolic::Expression size
Definition arg_capture_plan.h:20
const bool capture_input
Definition arg_capture_plan.h:16
const int arg_idx
Definition arg_capture_plan.h:18
const bool is_scalar
Definition arg_capture_plan.h:21
Definition language_extension.h:39
Base class for all structured control flow nodes in a StructuredSDFG.
Definition control_flow_node.h:44
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
Definition argument_registry.h:10
PrimitiveType
Enumeration of all primitive data types supported by sdfglib.
Definition type.h:35
Definition arguments_analysis.h:51