Halide 19.0.0
Halide compiler and libraries
|
Lock all the Store nodes in the body statement. More...
#include <IR.h>
Static Public Member Functions | |
static Stmt | make (const std::string &producer_name, const std::string &mutex_name, Stmt body) |
Public Attributes | |
std::string | producer_name |
std::string | mutex_name |
Stmt | body |
Public Attributes inherited from Halide::Internal::IRNode | |
RefCount | ref_count |
These classes are all managed with intrusive reference counting, so we also track a reference count. | |
IRNodeType | node_type |
Each IR node subclass has a unique identifier. | |
Static Public Attributes | |
static const IRNodeType | _node_type = IRNodeType::Atomic |
Additional Inherited Members | |
Public Member Functions inherited from Halide::Internal::StmtNode< Atomic > | |
void | accept (IRVisitor *v) const override |
We use the visitor pattern to traverse IR nodes throughout the compiler, so we have a virtual accept method which accepts visitors. | |
Stmt | mutate_stmt (IRMutator *v) const override |
StmtNode () | |
~StmtNode () override=default | |
Public Member Functions inherited from Halide::Internal::BaseStmtNode | |
BaseStmtNode (IRNodeType t) | |
Public Member Functions inherited from Halide::Internal::IRNode | |
IRNode (IRNodeType t) | |
virtual | ~IRNode ()=default |
Lock all the Store nodes in the body statement.
Typically the lock is implemented by an atomic operation (e.g. atomic add or atomic compare-and-swap). However, if necessary, the node can access a mutex buffer through mutex_name and mutex_args, by lowering this node into calls to acquire and release the lock.
|
static |
|
static |