Loading...
Searching...
No Matches
Halide::Internal::Atomic Struct Reference

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

`#include <IR.h>`

Inheritance diagram for Halide::Internal::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.
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

## 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 994 of file IR.h.

## Member Function Documentation

## make()

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

static

References body, mutex_name, and producer_name.

## Member Data Documentation

## producer_name

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

Definition at line 995 of file IR.h.

Referenced by make().

## mutex_name

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

Definition at line 996 of file IR.h.

Referenced by make().

## body

Stmt Halide::Internal::Atomic::body

Definition at line 997 of file IR.h.

Referenced by make().

## _node_type

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

static

Definition at line 1003 of file IR.h.

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

- src/IR.h