Halide::Internal::Atomic Struct Reference

Lock all the Store nodes in the body statement. More...

#include <IR.h>

Inherits Halide::Internal::StmtNode< Atomic >.

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. More...
IRNodeType node_type
 Each IR node subclass has a unique identifier. More...

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. More...
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

Detailed Description

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.

Definition at line 809 of file IR.h.

Member Function Documentation

◆ make()

static Stmt Halide::Internal::Atomic::make ( const std::string &  producer_name,
const std::string &  mutex_name,
Stmt  body 

Member Data Documentation

◆ producer_name

std::string Halide::Internal::Atomic::producer_name

Definition at line 810 of file IR.h.

◆ mutex_name

std::string Halide::Internal::Atomic::mutex_name

Definition at line 811 of file IR.h.

◆ body

Stmt Halide::Internal::Atomic::body

Definition at line 812 of file IR.h.

◆ _node_type

const IRNodeType Halide::Internal::Atomic::_node_type = IRNodeType::Atomic

Definition at line 818 of file IR.h.

The documentation for this struct was generated from the following file: