docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::analysis::LocalLoopInfo Struct Reference

Meant to contain only per-loop data (does not reflect what loops nested inside do / have) This is a pre-processing step to collect the loop-nest-wide info. More...

#include <sdfg/analysis/loop_analysis.h>

Public Types

enum class  LoopType : uint8_t { While , For , Map }

Public Attributes

uint32_t loop_id
 Unique ID for each loop, not just loop nests.
uint32_t last_child_id
 ID of the last child.
uint32_t loop_level
LoopType type
bool is_elementwise
bool contains_non_perfectly_nested
 The loop contains anything other than a direct child loop.
bool contains_side_effects
 The loop contains side-effects directly in its body (does not include anything that happens in child loops).

Detailed Description

Meant to contain only per-loop data (does not reflect what loops nested inside do / have) This is a pre-processing step to collect the loop-nest-wide info.

It is a separate struct to not change the previous interface too much or pollute it with confusingly similar data And to allow for separate allocation in the future

Member Enumeration Documentation

◆ LoopType

enum class sdfg::analysis::LocalLoopInfo::LoopType : uint8_t
strong
Enumerator
While 
For 
Map 

Member Data Documentation

◆ contains_non_perfectly_nested

bool sdfg::analysis::LocalLoopInfo::contains_non_perfectly_nested

The loop contains anything other than a direct child loop.

Be it a block, an additional sequence or multiple loops

◆ contains_side_effects

bool sdfg::analysis::LocalLoopInfo::contains_side_effects

The loop contains side-effects directly in its body (does not include anything that happens in child loops).

◆ is_elementwise

bool sdfg::analysis::LocalLoopInfo::is_elementwise

◆ last_child_id

uint32_t sdfg::analysis::LocalLoopInfo::last_child_id

ID of the last child.

Allows for efficient, transitive is_parent / is_child checks parent.loop_id > child.loop_id && parent.last_child_id >= child.loop_id => is (transitive) child

◆ loop_id

uint32_t sdfg::analysis::LocalLoopInfo::loop_id

Unique ID for each loop, not just loop nests.

Numbered in pre-order DFS (children will always have higher numbers than their parents)

◆ loop_level

uint32_t sdfg::analysis::LocalLoopInfo::loop_level

◆ type

LoopType sdfg::analysis::LocalLoopInfo::type

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