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

A base class for expression nodes. More...

`#include <Expr.h>`

Inheritance diagram for Halide::Internal::BaseExprNode:

## 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.
| 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.
IRNodeType | node_type
| Each IR node subclass has a unique identifier.

## Detailed Description

A base class for expression nodes.

They all contain their types (e.g. Int(32), Float(32))

Definition at line 143 of file Expr.h.

## Constructor & Destructor Documentation

## BaseExprNode()

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

inline

Definition at line 144 of file Expr.h.

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

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

## Member Function Documentation

## mutate_expr()

virtual Expr Halide::Internal::BaseExprNode::mutate_expr | ( | IRMutator * | v | ) | const

pure virtual

Implemented in Halide::Internal::ExprNode< T >, 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 >, and Halide::Internal::ExprNode< VectorReduce >.

## Member Data Documentation

## type

Type Halide::Internal::BaseExprNode::type

Definition at line 148 of file Expr.h.

Referenced by Halide::SimdOpCheckTest::check_one(), Halide::Internal::HexagonAlignmentAnalyzer::is_aligned(), Halide::Internal::Cast::is_reinterpret(), Halide::Internal::Call::make(), Halide::Internal::Call::make(), Halide::Internal::Load::make(), Halide::Internal::Variable::make(), Halide::Internal::Variable::make(), Halide::Internal::Variable::make(), Halide::Internal::Variable::make(), Halide::Internal::Variable::make(), Halide::Internal::IRMatcher::SliceOp< Vec, Base, Stride, Lanes >::match(), Halide::Internal::IRMatcher::VectorReduceOp< A, B, reduce_op >::match(), and Halide::Expr::type().

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

- src/Expr.h