docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::util Namespace Reference

Functions

std::unique_ptr< StructuredSDFG > cutout (sdfg::StructuredSDFG &sdfg, sdfg::analysis::AnalysisManager &analysis_manager, structured_control_flow::ControlFlowNode &node)
void apply_cutout (builder::StructuredSDFGBuilder &builder, size_t element_id, StructuredSDFG &cutout_sdfg)
 Replace the control-flow node with element_id in builder.subject() by the children of cutout_sdfg's root (the inverse of cutout).

Function Documentation

◆ apply_cutout()

void sdfg::util::apply_cutout ( builder::StructuredSDFGBuilder & builder,
size_t element_id,
StructuredSDFG & cutout_sdfg )

Replace the control-flow node with element_id in builder.subject() by the children of cutout_sdfg's root (the inverse of cutout).

Arguments and externals of cutout_sdfg keep their names so they bind to the target's containers; colliding transients are renamed and missing containers are added as transients, so the target's signature is preserved. Merged nodes receive fresh element ids from the target; each outermost merged loop records element_id as its source loop id.

Exceptions
std::runtime_errorif no control-flow node with element_id exists or it has no parent scope.

◆ cutout()

std::unique_ptr< StructuredSDFG > sdfg::util::cutout ( sdfg::StructuredSDFG & sdfg,
sdfg::analysis::AnalysisManager & analysis_manager,
structured_control_flow::ControlFlowNode & node )