Halide 19.0.0
Halide compiler and libraries
|
We use the "curiously recurring template pattern" to avoid duplicated code in the IR Nodes. More...
#include <Expr.h>
Public Member Functions | |
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. | |
Expr | mutate_expr (IRMutator *v) const override |
ExprNode () | |
~ExprNode () override=default | |
Public Member Functions inherited from Halide::Internal::BaseExprNode | |
BaseExprNode (IRNodeType t) | |
Public Member Functions inherited from Halide::Internal::IRNode | |
IRNode (IRNodeType t) | |
virtual | ~IRNode ()=default |
Additional Inherited Members | |
Public Attributes inherited from Halide::Internal::BaseExprNode | |
Type | type |
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. | |
We use the "curiously recurring template pattern" to avoid duplicated code in the IR Nodes.
These classes live between the abstract base classes and the actual IR Nodes in the inheritance hierarchy. It provides an implementation of the accept function necessary for the visitor pattern to work, and a concrete instantiation of a unique IRNodeType per class.
|
inline |
|
overridedefault |
|
overridevirtual |
We use the visitor pattern to traverse IR nodes throughout the compiler, so we have a virtual accept method which accepts visitors.
Implements Halide::Internal::IRNode.
|
overridevirtual |
Implements Halide::Internal::BaseExprNode.