|
docc 0.8.3 (0d44999b)
C++ API Reference
|
A concrete lowering ("implementation") of an AtomicScalarOpNode. More...
#include <sdfg/data_flow/library_nodes/atomic_op_node.h>
Public Member Functions | |
| virtual | ~AtomicScalarOpImpl ()=default |
| AtomicScalarOpImpl (const AtomicScalarOpImpl &)=delete | |
| AtomicScalarOpImpl & | operator= (const AtomicScalarOpImpl &)=delete |
| virtual std::string_view | type_name () const =0 |
| ImplementationType | implementation_type () const |
| The implementation type this impl corresponds to. | |
| virtual bool | supports (types::PrimitiveType data_type, AtomicOpType op) const =0 |
| Whether this implementation supports the given (data type, op) combination. | |
Protected Member Functions | |
| AtomicScalarOpImpl () | |
A concrete lowering ("implementation") of an AtomicScalarOpNode.
An AtomicScalarOpImpl bundles two pieces of knowledge that used to be spread across AtomicScalarOpNode (verify_impl_exits_*) and the dispatchers:
Each concrete implementation is a stateless singleton, obtained via its instance() method, and is tied to exactly one ImplementationType. This keeps a node's implementation_type in sync with the impl used to reason about and lower it.
|
virtualdefault |
|
delete |
|
inlineprotected |
|
inline |
The implementation type this impl corresponds to.
|
delete |
|
pure virtual |
Whether this implementation supports the given (data type, op) combination.
Implemented in sdfg::data_flow::AtomicScalarOpCPUImpl, sdfg::data_flow::AtomicScalarOpCudaImpl, and sdfg::data_flow::AtomicScalarOpRocmImpl.
|
pure virtual |