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

Namespaces

namespace  analysis
namespace  builder
namespace  codegen
namespace  structured_control_flow
namespace  control_flow
namespace  serializer
namespace  util
namespace  data_flow
namespace  math
namespace  stdlib
namespace  deepcopy
namespace  graph
namespace  helpers
namespace  passes
namespace  plugins
namespace  visitor
namespace  symbolic
namespace  types
namespace  offloading
namespace  users
namespace  visualizer
namespace  einsum
namespace  fp_math
namespace  parallelization
namespace  transformations
namespace  cuda
namespace  rocm
namespace  gpu
namespace  tiles
namespace  omp
namespace  vectorize
namespace  auto_util

Classes

class  DebugInfo
class  Element
class  InvalidSDFGException
class  UnstructuredControlFlowException
class  StringEnum
class  Function
struct  TransformReport
class  OptimizationReport
class  PassReportConsumer
struct  OptionSpec
struct  OptionKey
class  Options
class  OptionRegistry
class  SDFG
class  StructuredSDFG

Typedefs

typedef size_t ElementId
template<typename T>
using element_cast_target_t = std::remove_pointer_t<std::remove_reference_t<T>>
 Resolves the concrete target type for isa/dyn_cast, accepting the type itself (Block), a pointer to it (Block*), or a reference to it (Block&).
typedef StringEnum FunctionType
using OptionValue = std::variant<bool, int64_t, double, std::string>

Enumerations

enum class  ElementType : uint64_t {
  State = 1LL , InterstateEdge = 1LL << 1 , AccessNode = 1LL << 2 , ConstantNode = 1LL << 3 ,
  Tasklet = 1LL << 4 , LibraryNode = 1LL << 5 , Memlet = 1LL << 6 , Return = 1LL << 7 ,
  Block = 1LL << 8 , Sequence = 1LL << 9 , AssignmentBlock = 1LL << 10 , IfElse = 1LL << 11 ,
  While = 1LL << 12 , Continue = 1LL << 13 , Break = 1LL << 14 , For = 1LL << 15 ,
  Map = 1LL << 16 , Reduce = 1LL << 17
}
enum  LinkageType { LinkageType_External , LinkageType_Internal }
enum class  OptionType { Bool , Int , Double , String }

Functions

constexpr ElementType operator| (ElementType lhs, ElementType rhs)
 Bitwise combination of element types, enabling category masks.
constexpr ElementType operator& (ElementType lhs, ElementType rhs)
constexpr ElementType operator~ (ElementType type)
constexpr bool is_a (ElementType type, ElementType mask)
 Tests whether type is contained in the category mask (efficient, branch-free type check).
constexpr std::string_view element_type_name (ElementType type)
 Returns the type of an element as a human-readable string (no allocation).
std::ostream & operator<< (std::ostream &os, ElementType type)
template<typename T>
bool isa (const Element &element)
 LLVM-style RTTI check: true if element belongs to type category T.
template<typename T>
bool isa (const Element *element)
template<typename T>
element_cast_target_t< T > * dyn_cast (Element *element)
 Efficient down-cast to T, or nullptr if element is not a T.
template<typename T>
const element_cast_target_t< T > * dyn_cast (const Element *element)
template<typename T>
element_cast_target_t< T > & dyn_cast (Element &element)
 Checked down-cast to T; throws InvalidSDFGException if element is not a T.
template<typename T>
const element_cast_target_t< T > & dyn_cast (const Element &element)
template<class T>
constexpr OptionType option_type_of ()

Variables

FunctionType FunctionType_CPU {"CPU"}
FunctionType FunctionType_NV_GLOBAL {"NV_GLOBAL"}

Typedef Documentation

◆ element_cast_target_t

template<typename T>
using sdfg::element_cast_target_t = std::remove_pointer_t<std::remove_reference_t<T>>

Resolves the concrete target type for isa/dyn_cast, accepting the type itself (Block), a pointer to it (Block*), or a reference to it (Block&).

◆ ElementId

typedef size_t sdfg::ElementId

◆ FunctionType

◆ OptionValue

using sdfg::OptionValue = std::variant<bool, int64_t, double, std::string>

Enumeration Type Documentation

◆ ElementType

enum class sdfg::ElementType : uint64_t
strong
Enumerator
State 
InterstateEdge 
AccessNode 
ConstantNode 
Tasklet 
LibraryNode 
Memlet 
Return 
Block 
Sequence 
AssignmentBlock 
IfElse 
While 
Continue 
Break 
For 
Map 
Reduce 

◆ LinkageType

Enumerator
LinkageType_External 
LinkageType_Internal 

◆ OptionType

enum class sdfg::OptionType
strong
Enumerator
Bool 
Int 
Double 
String 

Function Documentation

◆ dyn_cast() [1/4]

template<typename T>
const element_cast_target_t< T > & sdfg::dyn_cast ( const Element & element)

◆ dyn_cast() [2/4]

template<typename T>
const element_cast_target_t< T > * sdfg::dyn_cast ( const Element * element)

◆ dyn_cast() [3/4]

template<typename T>
element_cast_target_t< T > & sdfg::dyn_cast ( Element & element)

Checked down-cast to T; throws InvalidSDFGException if element is not a T.

◆ dyn_cast() [4/4]

template<typename T>
element_cast_target_t< T > * sdfg::dyn_cast ( Element * element)

Efficient down-cast to T, or nullptr if element is not a T.

◆ element_type_name()

std::string_view sdfg::element_type_name ( ElementType type)
constexpr

Returns the type of an element as a human-readable string (no allocation).

◆ is_a()

bool sdfg::is_a ( ElementType type,
ElementType mask )
constexpr

Tests whether type is contained in the category mask (efficient, branch-free type check).

◆ isa() [1/2]

template<typename T>
bool sdfg::isa ( const Element & element)

LLVM-style RTTI check: true if element belongs to type category T.

T must expose a static bool classof(const Element&) predicate (typically implemented via a power-of-two ElementType category mask). This is a branch-free alternative to dynamic_cast for element categories.

T may be given as the target type (isa<While>), a pointer (isa<While*>), or a reference (isa<While&>); all are treated identically.

◆ isa() [2/2]

template<typename T>
bool sdfg::isa ( const Element * element)

◆ operator&()

ElementType sdfg::operator& ( ElementType lhs,
ElementType rhs )
constexpr

◆ operator<<()

std::ostream & sdfg::operator<< ( std::ostream & os,
ElementType type )
inline

◆ operator|()

ElementType sdfg::operator| ( ElementType lhs,
ElementType rhs )
constexpr

Bitwise combination of element types, enabling category masks.

◆ operator~()

ElementType sdfg::operator~ ( ElementType type)
constexpr

◆ option_type_of()

template<class T>
OptionType sdfg::option_type_of ( )
constexpr

Variable Documentation

◆ FunctionType_CPU

FunctionType sdfg::FunctionType_CPU {"CPU"}
inline

◆ FunctionType_NV_GLOBAL

FunctionType sdfg::FunctionType_NV_GLOBAL {"NV_GLOBAL"}
inline