Loading...
Searching...
No Matches
Halide::Internal::BaseStmtNode Struct Referenceabstract

IR nodes are split into expressions and statements. More...

`#include <Expr.h>`

Inheritance diagram for Halide::Internal::BaseStmtNode:

## Public Member Functions

| BaseStmtNode (IRNodeType t)
virtual Stmt | mutate_stmt (IRMutator *v) const =0
Public Member Functions inherited from Halide::Internal::IRNode
virtual void | accept (IRVisitor *v) const =0
| We use the visitor pattern to traverse IR nodes throughout the compiler, so we have a virtual accept method which accepts visitors.
| IRNode (IRNodeType t)
virtual | ~IRNode ()=default

## Additional Inherited Members

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.

## Detailed Description

IR nodes are split into expressions and statements.

These are similar to expressions and statements in C - expressions represent some value and have some type (e.g. x + 3), and statements are side-effecting pieces of code that do not represent a value (e.g. assert(x > 3)) A base class for statement nodes. They have no properties or methods beyond base IR nodes for now.

Definition at line 134 of file Expr.h.

## Constructor & Destructor Documentation

## BaseStmtNode()

Halide::Internal::BaseStmtNode::BaseStmtNode | ( | IRNodeType | t | ) |

inline

Definition at line 135 of file Expr.h.

References Halide::Internal::IRNode::IRNode().

Referenced by Halide::Internal::StmtNode< T >::StmtNode().

## Member Function Documentation

## mutate_stmt()

virtual Stmt Halide::Internal::BaseStmtNode::mutate_stmt | ( | IRMutator * | v | ) | const

pure virtual

Implemented in Halide::Internal::StmtNode< T >, Halide::Internal::StmtNode< Acquire >, Halide::Internal::StmtNode< Allocate >, Halide::Internal::StmtNode< AssertStmt >, Halide::Internal::StmtNode< Atomic >, Halide::Internal::StmtNode< Block >, Halide::Internal::StmtNode< Evaluate >, Halide::Internal::StmtNode< For >, Halide::Internal::StmtNode< Fork >, Halide::Internal::StmtNode< Free >, Halide::Internal::StmtNode< HoistedStorage >, Halide::Internal::StmtNode< IfThenElse >, Halide::Internal::StmtNode< LetStmt >, Halide::Internal::StmtNode< Prefetch >, Halide::Internal::StmtNode< ProducerConsumer >, Halide::Internal::StmtNode< Provide >, Halide::Internal::StmtNode< Realize >, and Halide::Internal::StmtNode< Store >.

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

- src/Expr.h