|
docc 0.8.3 (0d44999b)
C++ API Reference
|
#include <cassert>#include <cstdint>#include <string>#include <string_view>#include <type_traits>#include <unordered_map>#include "sdfg/exceptions.h"#include "sdfg/symbolic/symbolic.h"Go to the source code of this file.
Classes | |
| class | sdfg::DebugInfo |
| class | sdfg::Element |
Namespaces | |
| namespace | sdfg |
| namespace | sdfg::builder |
| namespace | sdfg::deepcopy |
| namespace | sdfg::serializer |
Typedefs | |
| typedef size_t | sdfg::ElementId |
| 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&). | |
Enumerations | |
| enum class | sdfg::ElementType : uint64_t { sdfg::State = 1LL , sdfg::InterstateEdge = 1LL << 1 , sdfg::AccessNode = 1LL << 2 , sdfg::ConstantNode = 1LL << 3 , sdfg::Tasklet = 1LL << 4 , sdfg::LibraryNode = 1LL << 5 , sdfg::Memlet = 1LL << 6 , sdfg::Return = 1LL << 7 , sdfg::Block = 1LL << 8 , sdfg::Sequence = 1LL << 9 , sdfg::AssignmentBlock = 1LL << 10 , sdfg::IfElse = 1LL << 11 , sdfg::While = 1LL << 12 , sdfg::Continue = 1LL << 13 , sdfg::Break = 1LL << 14 , sdfg::For = 1LL << 15 , sdfg::Map = 1LL << 16 , sdfg::Reduce = 1LL << 17 } |
Functions | |
| constexpr ElementType | sdfg::operator| (ElementType lhs, ElementType rhs) |
| Bitwise combination of element types, enabling category masks. | |
| constexpr ElementType | sdfg::operator& (ElementType lhs, ElementType rhs) |
| constexpr ElementType | sdfg::operator~ (ElementType type) |
| constexpr bool | sdfg::is_a (ElementType type, ElementType mask) |
Tests whether type is contained in the category mask (efficient, branch-free type check). | |
| constexpr std::string_view | sdfg::element_type_name (ElementType type) |
| Returns the type of an element as a human-readable string (no allocation). | |
| std::ostream & | sdfg::operator<< (std::ostream &os, ElementType type) |
| template<typename T> | |
| bool | sdfg::isa (const Element &element) |
LLVM-style RTTI check: true if element belongs to type category T. | |
| template<typename T> | |
| bool | sdfg::isa (const Element *element) |
| 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. | |
| template<typename T> | |
| const element_cast_target_t< T > * | sdfg::dyn_cast (const Element *element) |
| 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. | |
| template<typename T> | |
| const element_cast_target_t< T > & | sdfg::dyn_cast (const Element &element) |