|
Halide 21.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 |
References body, mutex_name, and producer_name.
| std::string Halide::Internal::Atomic::producer_name |
| std::string Halide::Internal::Atomic::mutex_name |
|
static |