Halide 19.0.0
Halide compiler and libraries
|
IR nodes are split into expressions and statements. More...
#include <Expr.h>
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. | |
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.
|
inline |
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 >.