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

Simplifies mixed-radix index expressions in memlet subsets. More...

#include <sdfg/passes/dataflow/memlet_simplification.h>

Inheritance diagram for sdfg::passes::MemletSimplification:
[legend]

Public Member Functions

 MemletSimplification (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
 Constructs a new MemletSimplification pass.
virtual bool accept (structured_control_flow::Map &map) override
 Accepts a Map and simplifies memlet subsets in immediate blocks.
Public Member Functions inherited from sdfg::visitor::NonStoppingStructuredSDFGVisitor
 NonStoppingStructuredSDFGVisitor (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
bool visit () override
Public Member Functions inherited from sdfg::visitor::StructuredSDFGVisitor
 StructuredSDFGVisitor (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager)
virtual ~StructuredSDFGVisitor ()=default
virtual bool accept (structured_control_flow::Block &node)
virtual bool accept (structured_control_flow::AssignmentBlock &node)
virtual bool accept (structured_control_flow::Sequence &node)
virtual bool accept (structured_control_flow::Return &node)
virtual bool accept (structured_control_flow::IfElse &node)
virtual bool accept (structured_control_flow::For &node)
virtual bool accept (structured_control_flow::While &node)
virtual bool accept (structured_control_flow::Continue &node)
virtual bool accept (structured_control_flow::Break &node)
virtual bool accept (structured_control_flow::Reduce &node)

Static Public Member Functions

static std::string name ()
 Returns the name of the pass.

Additional Inherited Members

Protected Member Functions inherited from sdfg::visitor::NonStoppingStructuredSDFGVisitor
bool visit_internal (structured_control_flow::Sequence &parent) override
Protected Attributes inherited from sdfg::visitor::StructuredSDFGVisitor
builder::StructuredSDFGBuilder & builder_
analysis::AnalysisManager & analysis_manager_

Detailed Description

Simplifies mixed-radix index expressions in memlet subsets.

This pass targets memlets with single-element subsets (flat pointer accesses) within Maps that are in loop normal form. It recognizes patterns of the form:

sum of stride[k] * ((idx / stride[k]) % dim[k])

where the strides form a C-contiguous layout, and simplifies them to just idx.

Prerequisites:

  • MapCollapse has been applied (creates div/mod decomposition)
  • Maps are in loop normal form (zero init, unit stride)

Constructor & Destructor Documentation

◆ MemletSimplification()

sdfg::passes::MemletSimplification::MemletSimplification ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager )

Constructs a new MemletSimplification pass.

Parameters
builderThe structured SDFG builder
analysis_managerThe analysis manager

Member Function Documentation

◆ accept()

virtual bool sdfg::passes::MemletSimplification::accept ( structured_control_flow::Map & map)
overridevirtual

Accepts a Map and simplifies memlet subsets in immediate blocks.

Parameters
mapThe map to process
Returns
true if any memlet subsets were simplified

Reimplemented from sdfg::visitor::StructuredSDFGVisitor.

◆ name()

std::string sdfg::passes::MemletSimplification::name ( )
inlinestatic

Returns the name of the pass.

Returns
The string "MemletSimplification"

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