Loading...
Searching...
No Matches
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>`

Inheritance diagram for Halide::Internal::IRGraphMutator:

## Public Member Functions

Stmt | mutate (const Stmt &s) override
Expr | mutate (const Expr &e) override
| This is the main interface for using a mutator.
std::vector< Expr > | mutate (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< Expr > | mutate (const std::vector< Expr > &exprs)

## Protected Attributes

std::map< Expr, Expr, ExprCompare > | expr_replacements
std::map< Stmt, Stmt, Stmt::Compare > | stmt_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 *)
virtual Stmt | visit (const HoistedStorage *)

## 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 108 of file IRMutator.h.

## Member Function Documentation

## mutate() [1/3]

Stmt Halide::Internal::IRGraphMutator::mutate | ( | const Stmt & | s | ) |

override virtual

Reimplemented from Halide::Internal::IRMutator.

## mutate() [2/3]

Expr Halide::Internal::IRGraphMutator::mutate | ( | const Expr & | expr | ) |

override virtual

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 117 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 110 of file IRMutator.h.

## stmt_replacements

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

protected

Definition at line 111 of file IRMutator.h.

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

- src/IRMutator.h