Halide
|
A base class for expression nodes. More...
#include <Expr.h>
Inherits Halide::Internal::IRNode.
Inherited by Halide::Internal::ExprNode< Add >, Halide::Internal::ExprNode< And >, Halide::Internal::ExprNode< Broadcast >, Halide::Internal::ExprNode< Call >, Halide::Internal::ExprNode< Cast >, Halide::Internal::ExprNode< Div >, Halide::Internal::ExprNode< EQ >, Halide::Internal::ExprNode< FloatImm >, Halide::Internal::ExprNode< GE >, Halide::Internal::ExprNode< GT >, Halide::Internal::ExprNode< IntImm >, Halide::Internal::ExprNode< LE >, Halide::Internal::ExprNode< Let >, Halide::Internal::ExprNode< Load >, Halide::Internal::ExprNode< LT >, Halide::Internal::ExprNode< Max >, Halide::Internal::ExprNode< Min >, Halide::Internal::ExprNode< Mod >, Halide::Internal::ExprNode< Mul >, Halide::Internal::ExprNode< NE >, Halide::Internal::ExprNode< Not >, Halide::Internal::ExprNode< Or >, Halide::Internal::ExprNode< Ramp >, Halide::Internal::ExprNode< Reinterpret >, Halide::Internal::ExprNode< Select >, Halide::Internal::ExprNode< Shuffle >, Halide::Internal::ExprNode< StringImm >, Halide::Internal::ExprNode< Sub >, Halide::Internal::ExprNode< UIntImm >, Halide::Internal::ExprNode< Variable >, Halide::Internal::ExprNode< VectorReduce >, and Halide::Internal::ExprNode< T >.
Public Member Functions | |
BaseExprNode (IRNodeType t) | |
virtual Expr | mutate_expr (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. More... | |
IRNode (IRNodeType t) | |
virtual | ~IRNode ()=default |
Public Attributes | |
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. More... | |
IRNodeType | node_type |
Each IR node subclass has a unique identifier. More... | |
A base class for expression nodes.
They all contain their types (e.g. Int(32), Float(32))
|
inline |
Implemented in Halide::Internal::ExprNode< T >, Halide::Internal::ExprNode< And >, Halide::Internal::ExprNode< GE >, Halide::Internal::ExprNode< StringImm >, Halide::Internal::ExprNode< IntImm >, Halide::Internal::ExprNode< Let >, Halide::Internal::ExprNode< Or >, Halide::Internal::ExprNode< Ramp >, Halide::Internal::ExprNode< Variable >, Halide::Internal::ExprNode< Select >, Halide::Internal::ExprNode< UIntImm >, Halide::Internal::ExprNode< FloatImm >, Halide::Internal::ExprNode< Load >, Halide::Internal::ExprNode< Shuffle >, Halide::Internal::ExprNode< Div >, Halide::Internal::ExprNode< Sub >, Halide::Internal::ExprNode< LT >, Halide::Internal::ExprNode< Min >, Halide::Internal::ExprNode< Add >, Halide::Internal::ExprNode< NE >, Halide::Internal::ExprNode< Max >, Halide::Internal::ExprNode< Not >, Halide::Internal::ExprNode< VectorReduce >, Halide::Internal::ExprNode< Reinterpret >, Halide::Internal::ExprNode< Mod >, Halide::Internal::ExprNode< LE >, Halide::Internal::ExprNode< Mul >, Halide::Internal::ExprNode< EQ >, Halide::Internal::ExprNode< GT >, Halide::Internal::ExprNode< Call >, Halide::Internal::ExprNode< Broadcast >, and Halide::Internal::ExprNode< Cast >.
Type Halide::Internal::BaseExprNode::type |
Definition at line 147 of file Expr.h.
Referenced by Halide::Internal::HexagonAlignmentAnalyzer::is_aligned(), Halide::Internal::Variable::make(), Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::match(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), and Halide::Expr::type().