Halide 22.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
Halide::Internal::LambdaVisitor< Lambdas > Struct Template Referencefinal

A lambda-based IR visitor that accepts multiple lambdas for different node types. More...

#include <IRVisitor.h>

Inheritance diagram for Halide::Internal::LambdaVisitor< Lambdas >:
Halide::Internal::IRVisitor

Public Member Functions

 LambdaVisitor (Lambdas... lambdas)
 
template<typename T >
void visit_base (const T *op)
 Public helper to call the base visitor from lambdas.
 
- Public Member Functions inherited from Halide::Internal::IRVisitor
 IRVisitor ()=default
 
virtual ~IRVisitor ()=default
 

Protected Member Functions

void visit (const IntImm *op) override
 
void visit (const UIntImm *op) override
 
void visit (const FloatImm *op) override
 
void visit (const StringImm *op) override
 
void visit (const Cast *op) override
 
void visit (const Reinterpret *op) override
 
void visit (const Add *op) override
 
void visit (const Sub *op) override
 
void visit (const Mul *op) override
 
void visit (const Div *op) override
 
void visit (const Mod *op) override
 
void visit (const Min *op) override
 
void visit (const Max *op) override
 
void visit (const EQ *op) override
 
void visit (const NE *op) override
 
void visit (const LT *op) override
 
void visit (const LE *op) override
 
void visit (const GT *op) override
 
void visit (const GE *op) override
 
void visit (const And *op) override
 
void visit (const Or *op) override
 
void visit (const Not *op) override
 
void visit (const Select *op) override
 
void visit (const Load *op) override
 
void visit (const Ramp *op) override
 
void visit (const Broadcast *op) override
 
void visit (const Let *op) override
 
void visit (const LetStmt *op) override
 
void visit (const AssertStmt *op) override
 
void visit (const ProducerConsumer *op) override
 
void visit (const Store *op) override
 
void visit (const Provide *op) override
 
void visit (const Allocate *op) override
 
void visit (const Free *op) override
 
void visit (const Realize *op) override
 
void visit (const Block *op) override
 
void visit (const Fork *op) override
 
void visit (const IfThenElse *op) override
 
void visit (const Evaluate *op) override
 
void visit (const Call *op) override
 
void visit (const Variable *op) override
 
void visit (const For *op) override
 
void visit (const Acquire *op) override
 
void visit (const Shuffle *op) override
 
void visit (const Prefetch *op) override
 
void visit (const HoistedStorage *op) override
 
void visit (const Atomic *op) override
 
void visit (const VectorReduce *op) override
 

Detailed Description

template<typename... Lambdas>
struct Halide::Internal::LambdaVisitor< Lambdas >

A lambda-based IR visitor that accepts multiple lambdas for different node types.

Definition at line 85 of file IRVisitor.h.

Constructor & Destructor Documentation

◆ LambdaVisitor()

template<typename... Lambdas>
Halide::Internal::LambdaVisitor< Lambdas >::LambdaVisitor ( Lambdas...  lambdas)
inlineexplicit

Definition at line 86 of file IRVisitor.h.

Member Function Documentation

◆ visit_base()

template<typename... Lambdas>
template<typename T >
void Halide::Internal::LambdaVisitor< Lambdas >::visit_base ( const T *  op)
inline

Public helper to call the base visitor from lambdas.

Definition at line 92 of file IRVisitor.h.

References Halide::Internal::IRVisitor::visit().

◆ visit() [1/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const IntImm op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 109 of file IRVisitor.h.

◆ visit() [2/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const UIntImm op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 112 of file IRVisitor.h.

◆ visit() [3/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const FloatImm op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 115 of file IRVisitor.h.

◆ visit() [4/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const StringImm op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 118 of file IRVisitor.h.

◆ visit() [5/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Cast op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 121 of file IRVisitor.h.

◆ visit() [6/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Reinterpret op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 124 of file IRVisitor.h.

◆ visit() [7/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Add op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 127 of file IRVisitor.h.

◆ visit() [8/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Sub op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 130 of file IRVisitor.h.

◆ visit() [9/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Mul op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 133 of file IRVisitor.h.

◆ visit() [10/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Div op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 136 of file IRVisitor.h.

◆ visit() [11/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Mod op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 139 of file IRVisitor.h.

◆ visit() [12/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Min op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 142 of file IRVisitor.h.

◆ visit() [13/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Max op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 145 of file IRVisitor.h.

◆ visit() [14/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const EQ op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 148 of file IRVisitor.h.

◆ visit() [15/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const NE op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 151 of file IRVisitor.h.

◆ visit() [16/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const LT op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 154 of file IRVisitor.h.

◆ visit() [17/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const LE op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 157 of file IRVisitor.h.

◆ visit() [18/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const GT op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 160 of file IRVisitor.h.

◆ visit() [19/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const GE op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 163 of file IRVisitor.h.

◆ visit() [20/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const And op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 166 of file IRVisitor.h.

◆ visit() [21/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Or op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 169 of file IRVisitor.h.

◆ visit() [22/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Not op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 172 of file IRVisitor.h.

◆ visit() [23/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Select op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 175 of file IRVisitor.h.

◆ visit() [24/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Load op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 178 of file IRVisitor.h.

◆ visit() [25/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Ramp op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 181 of file IRVisitor.h.

◆ visit() [26/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Broadcast op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 184 of file IRVisitor.h.

◆ visit() [27/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Let op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 187 of file IRVisitor.h.

◆ visit() [28/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const LetStmt op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 190 of file IRVisitor.h.

◆ visit() [29/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const AssertStmt op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 193 of file IRVisitor.h.

◆ visit() [30/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const ProducerConsumer op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 196 of file IRVisitor.h.

◆ visit() [31/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Store op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 199 of file IRVisitor.h.

◆ visit() [32/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Provide op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 202 of file IRVisitor.h.

◆ visit() [33/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Allocate op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 205 of file IRVisitor.h.

◆ visit() [34/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Free op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 208 of file IRVisitor.h.

◆ visit() [35/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Realize op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 211 of file IRVisitor.h.

◆ visit() [36/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Block op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 214 of file IRVisitor.h.

◆ visit() [37/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Fork op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 217 of file IRVisitor.h.

◆ visit() [38/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const IfThenElse op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 220 of file IRVisitor.h.

◆ visit() [39/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Evaluate op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 223 of file IRVisitor.h.

◆ visit() [40/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Call op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 226 of file IRVisitor.h.

◆ visit() [41/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Variable op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 229 of file IRVisitor.h.

◆ visit() [42/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const For op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 232 of file IRVisitor.h.

◆ visit() [43/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Acquire op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 235 of file IRVisitor.h.

◆ visit() [44/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Shuffle op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 238 of file IRVisitor.h.

◆ visit() [45/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Prefetch op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 241 of file IRVisitor.h.

◆ visit() [46/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const HoistedStorage op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 244 of file IRVisitor.h.

◆ visit() [47/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const Atomic op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 247 of file IRVisitor.h.

◆ visit() [48/48]

template<typename... Lambdas>
void Halide::Internal::LambdaVisitor< Lambdas >::visit ( const VectorReduce op)
inlineoverrideprotectedvirtual

Reimplemented from Halide::Internal::IRVisitor.

Definition at line 250 of file IRVisitor.h.


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