|
docc 0.8.3 (0d44999b)
C++ API Reference
|
#include <sdfg/data_flow/pointer_metadata.h>
Public Member Functions | |
| virtual | ~PointerAccessMeta ()=default |
| virtual bool | no_capture () const =0 |
| Despite this being a leak of the pointer, the user will only use it for blocking accesses to the underlying data and not capture a reference to the data in any way. | |
| virtual bool | may_contain_reads () const =0 |
| The pointer may be used to read from the backing data. | |
| virtual bool | may_contain_writes () const =0 |
| The pointe may be used to write to the backing data. | |
| virtual bool | invalidated_after () const =0 |
| virtual MemoryAccessPatternType | access_read_pattern () const =0 |
| Describes which elements are accessed (for example a function may only access the range of [ptr, ptr+8] bytes and not touch or care about what comes after) Pointer access metadata only applies to the elements that are part of the pattern. | |
| virtual MemoryAccessPatternType | access_write_pattern () const =0 |
| PointerAccessType | ref () const |
| virtual void | replace (const symbolic::Expression old_expression, const symbolic::Expression new_expression)=0 |
| virtual void | replace (const symbolic::ExpressionMapping &replacements)=0 |
| virtual PointerAccessType | clone () const =0 |
| virtual void | serialize_to_json (nlohmann::json &entry)=0 |
Static Public Member Functions | |
| static PointerAccessType | create_read_only (const symbolic::Expression &size, bool no_capture, std::optional< math::tensor::TensorLayout > layout=std::nullopt, bool every_element_read=false) |
| static PointerAccessType | create_invalidate () |
| static PointerAccessType | create_full_write_only (const symbolic::Expression &size, bool no_capture, std::optional< math::tensor::TensorLayout > layout=std::nullopt) |
| static PointerAccessType | create_generic (MemoryAccessPatternType read_pattern, MemoryAccessPatternType write_pattern, bool no_capture) |
Protected Member Functions | |
| PointerAccessMeta ()=default | |
|
protecteddefault |
|
virtualdefault |
|
pure virtual |
Describes which elements are accessed (for example a function may only access the range of [ptr, ptr+8] bytes and not touch or care about what comes after) Pointer access metadata only applies to the elements that are part of the pattern.
A structured operand carries its real shape/strides through a TensorLayoutPattern; a flat convex span through a ConvexAccessPattern.
Implemented in sdfg::data_flow::PointerFullWriteOnly, sdfg::data_flow::PointerGenericAccess, sdfg::data_flow::PointerInvalidate, and sdfg::data_flow::PointerReadOnly.
|
pure virtual |
|
pure virtual |
|
static |
|
static |
|
static |
|
static |
|
pure virtual |
|
pure virtual |
The pointer may be used to read from the backing data.
Implemented in sdfg::data_flow::PointerFullWriteOnly, sdfg::data_flow::PointerGenericAccess, sdfg::data_flow::PointerInvalidate, and sdfg::data_flow::PointerReadOnly.
|
pure virtual |
The pointe may be used to write to the backing data.
Implemented in sdfg::data_flow::PointerFullWriteOnly, sdfg::data_flow::PointerGenericAccess, sdfg::data_flow::PointerInvalidate, and sdfg::data_flow::PointerReadOnly.
|
pure virtual |
Despite this being a leak of the pointer, the user will only use it for blocking accesses to the underlying data and not capture a reference to the data in any way.
Like a Rust temporary borrow for the duration of the LibNode and no more.
Implemented in sdfg::data_flow::PointerFullWriteOnly, sdfg::data_flow::PointerGenericAccess, sdfg::data_flow::PointerInvalidate, and sdfg::data_flow::PointerReadOnly.
| PointerAccessType sdfg::data_flow::PointerAccessMeta::ref | ( | ) | const |
|
pure virtual |
|
pure virtual |
|
pure virtual |