docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
loop_analysis.h File Reference
#include <unordered_set>
#include "sdfg/analysis/analysis.h"
#include "sdfg/structured_control_flow/structured_loop.h"

Go to the source code of this file.

Classes

struct  sdfg::analysis::LoopInfo
 is_perfectly_nested: is the entire loop hierarchy with loop at the top perfectly nested on every level is_perfectly_parallel: is the entire loop hierarchy with loop at the top perfectly parallel on every level num_loops [maps, fors, whiles]: number of X contained within, including the loop itself More...
struct  sdfg::analysis::LocalLoopInfo
 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...
class  sdfg::analysis::LoopAnalysis
struct  sdfg::analysis::LoopAnalysis::LoopState
struct  sdfg::analysis::LoopAnalysis::AggregatedResult

Namespaces

namespace  sdfg
namespace  sdfg::analysis

Macros

#define LOOP_INFO_PROPERTIES
#define X(type, name, val)

Functions

nlohmann::json sdfg::analysis::loop_info_to_json (LoopInfo info)
void sdfg::analysis::loop_info_local_to_json (nlohmann::json &j, const LocalLoopInfo &info)

Macro Definition Documentation

◆ LOOP_INFO_PROPERTIES

#define LOOP_INFO_PROPERTIES
Value:
X(int, loopnest_index, -1) \
X(sdfg::ElementId, element_id, 0) \
X(size_t, num_loops, 0) \
X(size_t, num_maps, 0) \
X(size_t, num_fors, 0) \
X(size_t, num_whiles, 0) \
X(size_t, max_depth, 0) \
X(bool, is_perfectly_nested, false) \
X(bool, is_perfectly_parallel, false) \
X(bool, is_elementwise, false) \
X(bool, has_side_effects, false) \
X(uint32_t, loop_level, 0) \
X(uint32_t, map_stack_depth, 0)
#define X(type, name, val)
Definition loop_analysis.h:39
size_t ElementId
Definition element.h:215

◆ X

#define X ( type,
name,
val )
Value:
type name = val;