Halide
Halide::Internal::IRGraphMutator Class Reference

A mutator that caches and reapplies previously-done mutations, so that it can handle graphs of IR that have not had CSE done to them. More...

#include <IRMutator.h>

Inherits Halide::Internal::IRMutator.

Public Member Functions

Stmt mutate (const Stmt &s) override
 
Expr mutate (const Expr &e) override
 This is the main interface for using a mutator. More...
 
std::vector< Exprmutate (const std::vector< Expr > &exprs)
 
- Public Member Functions inherited from Halide::Internal::IRMutator
 IRMutator ()=default
 
virtual ~IRMutator ()=default
 
std::pair< std::vector< Expr >, bool > mutate_with_changes (const std::vector< Expr > &)
 
std::vector< Exprmutate (const std::vector< Expr > &exprs)
 

Protected Attributes

std::map< Expr, Expr, ExprCompareexpr_replacements
 
std::map< Stmt, Stmt, Stmt::Comparestmt_replacements
 

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 Variable *)
 
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 Call *)
 
virtual Expr visit (const Let *)
 
virtual Expr visit (const Shuffle *)
 
virtual Expr visit (const VectorReduce *)
 
virtual Stmt visit (const LetStmt *)
 
virtual Stmt visit (const AssertStmt *)
 
virtual Stmt visit (const ProducerConsumer *)
 
virtual Stmt visit (const For *)
 
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 IfThenElse *)
 
virtual Stmt visit (const Evaluate *)
 
virtual Stmt visit (const Prefetch *)
 
virtual Stmt visit (const Acquire *)
 
virtual Stmt visit (const Fork *)
 
virtual Stmt visit (const Atomic *)
 

Detailed Description

A mutator that caches and reapplies previously-done mutations, so that it can handle graphs of IR that have not had CSE done to them.

Definition at line 107 of file IRMutator.h.

Member Function Documentation

◆ mutate() [1/3]

Stmt Halide::Internal::IRGraphMutator::mutate ( const Stmt s)
overridevirtual

Reimplemented from Halide::Internal::IRMutator.

◆ mutate() [2/3]

Expr Halide::Internal::IRGraphMutator::mutate ( const Expr expr)
overridevirtual

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.

◆ mutate() [3/3]

std::vector<Expr> Halide::Internal::IRGraphMutator::mutate ( const std::vector< Expr > &  exprs)
inline

Definition at line 116 of file IRMutator.h.

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

Member Data Documentation

◆ expr_replacements

std::map<Expr, Expr, ExprCompare> Halide::Internal::IRGraphMutator::expr_replacements
protected

Definition at line 109 of file IRMutator.h.

◆ stmt_replacements

std::map<Stmt, Stmt, Stmt::Compare> Halide::Internal::IRGraphMutator::stmt_replacements
protected

Definition at line 110 of file IRMutator.h.


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