Halide 22.0.0
Halide compiler and libraries
Halide::Internal::LambdaMutatorGeneric< Lambdas > Struct Template Referencefinal

A lambda-based IR mutator that accepts multiple lambdas for overloading the base mutate() method. More...

#include <IRMutator.h>

Inheritance diagram for Halide::Internal::LambdaMutatorGeneric< Lambdas >:
Halide::Internal::IRMutator

Public Member Functions

 LambdaMutatorGeneric (Lambdas... lambdas)
 
template<typename T >
auto mutate_base (const T &op)
 Public helper to call the base mutator from lambdas. More...
 
Expr mutate (const Expr &e) override
 This is the main interface for using a mutator. More...
 
Stmt mutate (const Stmt &e) override
 
- Public Member Functions inherited from Halide::Internal::IRMutator
 IRMutator ()=default
 
virtual ~IRMutator ()=default
 
virtual Expr mutate (const Expr &expr)
 This is the main interface for using a mutator. More...
 
virtual Stmt mutate (const Stmt &stmt)
 
std::pair< std::vector< Expr >, bool > mutate_with_changes (const std::vector< Expr > &)
 
std::vector< Exprmutate (const std::vector< Expr > &exprs)
 

Additional Inherited Members

- Protected Member Functions inherited from Halide::Internal::IRMutator
virtual Expr visit (const IntImm *)
 
virtual Expr visit (const UIntImm *)
 
virtual Expr visit (const FloatImm *)
 
virtual Expr visit (const StringImm *)
 
virtual Expr visit (const Cast *)
 
virtual Expr visit (const Reinterpret *)
 
virtual Expr visit (const Add *)
 
virtual Expr visit (const Sub *)
 
virtual Expr visit (const Mul *)
 
virtual Expr visit (const Div *)
 
virtual Expr visit (const Mod *)
 
virtual Expr visit (const Min *)
 
virtual Expr visit (const Max *)
 
virtual Expr visit (const EQ *)
 
virtual Expr visit (const NE *)
 
virtual Expr visit (const LT *)
 
virtual Expr visit (const LE *)
 
virtual Expr visit (const GT *)
 
virtual Expr visit (const GE *)
 
virtual Expr visit (const And *)
 
virtual Expr visit (const Or *)
 
virtual Expr visit (const Not *)
 
virtual Expr visit (const Select *)
 
virtual Expr visit (const Load *)
 
virtual Expr visit (const Ramp *)
 
virtual Expr visit (const Broadcast *)
 
virtual Expr visit (const Let *)
 
virtual Stmt visit (const LetStmt *)
 
virtual Stmt visit (const AssertStmt *)
 
virtual Stmt visit (const ProducerConsumer *)
 
virtual Stmt visit (const Store *)
 
virtual Stmt visit (const Provide *)
 
virtual Stmt visit (const Allocate *)
 
virtual Stmt visit (const Free *)
 
virtual Stmt visit (const Realize *)
 
virtual Stmt visit (const Block *)
 
virtual Stmt visit (const Fork *)
 
virtual Stmt visit (const IfThenElse *)
 
virtual Stmt visit (const Evaluate *)
 
virtual Expr visit (const Call *)
 
virtual Expr visit (const Variable *)
 
virtual Stmt visit (const For *)
 
virtual Stmt visit (const Acquire *)
 
virtual Expr visit (const Shuffle *)
 
virtual Stmt visit (const Prefetch *)
 
virtual Stmt visit (const HoistedStorage *)
 
virtual Stmt visit (const Atomic *)
 
virtual Expr visit (const VectorReduce *)
 

Detailed Description

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

A lambda-based IR mutator that accepts multiple lambdas for overloading the base mutate() method.

Definition at line 296 of file IRMutator.h.

Constructor & Destructor Documentation

◆ LambdaMutatorGeneric()

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

Definition at line 297 of file IRMutator.h.

Member Function Documentation

◆ mutate_base()

template<typename... Lambdas>
template<typename T >
auto Halide::Internal::LambdaMutatorGeneric< Lambdas >::mutate_base ( const T &  op)
inline

Public helper to call the base mutator from lambdas.

Definition at line 306 of file IRMutator.h.

References Halide::Internal::IRMutator::mutate().

Referenced by Halide::Internal::LambdaMutatorGeneric< Lambdas >::mutate().

◆ mutate() [1/2]

template<typename... Lambdas>
Expr Halide::Internal::LambdaMutatorGeneric< Lambdas >::mutate ( const Expr expr)
inlineoverridevirtual

This is the main interface for using a mutator.

Also call these in your subclass to mutate sub-expressions and sub-statements.

Reimplemented from Halide::Internal::IRMutator.

Definition at line 310 of file IRMutator.h.

References Halide::Internal::LambdaMutatorGeneric< Lambdas >::mutate_base().

Referenced by Halide::Internal::mutate_with().

◆ mutate() [2/2]

template<typename... Lambdas>
Stmt Halide::Internal::LambdaMutatorGeneric< Lambdas >::mutate ( const Stmt e)
inlineoverridevirtual

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