|
FreeTensor
|
#include <const_fold.h>


Protected Member Functions | |
| Expr | visit (const Add &op) override |
| Expr | visit (const Sub &op) override |
| Expr | visit (const Mul &op) override |
| Expr | visit (const RealDiv &op) override |
| Expr | visit (const FloorDiv &op) override |
| Expr | visit (const CeilDiv &op) override |
| Expr | visit (const RoundTowards0Div &op) override |
| Expr | visit (const Mod &op) override |
| Expr | visit (const Remainder &op) override |
| Expr | visit (const Min &op) override |
| Expr | visit (const Max &op) override |
| Expr | visit (const LT &op) override |
| Expr | visit (const LE &op) override |
| Expr | visit (const GT &op) override |
| Expr | visit (const GE &op) override |
| Expr | visit (const EQ &op) override |
| Expr | visit (const NE &op) override |
| Expr | visit (const LAnd &op) override |
| Expr | visit (const LOr &op) override |
| Expr | visit (const LNot &op) override |
| Expr | visit (const Sqrt &op) override |
| Expr | visit (const Exp &op) override |
| Expr | visit (const Square &op) override |
| Expr | visit (const Sigmoid &op) override |
| Expr | visit (const Sin &op) override |
| Expr | visit (const Cos &op) override |
| Expr | visit (const Tan &op) override |
| Expr | visit (const Tanh &op) override |
| Expr | visit (const Abs &op) override |
| Expr | visit (const Floor &op) override |
| Expr | visit (const Ceil &op) override |
| Expr | visit (const Unbound &op) override |
| Expr | visit (const Cast &op) override |
| Expr | visit (const IfExpr &op) override |
| virtual Stmt | visit (const Any &op) |
| virtual Stmt | visit (const StmtSeq &op) |
| virtual Stmt | visit (const VarDef &op) |
| virtual Expr | visit (const Var &op) |
| virtual Stmt | visit (const Store &op) |
| virtual Stmt | visit (const Alloc &op) |
| virtual Stmt | visit (const Free &op) |
| virtual Expr | visit (const Load &op) |
| virtual Stmt | visit (const ReduceTo &op) |
| virtual Expr | visit (const AnyExpr &op) |
| virtual Expr | visit (const IntConst &op) |
| virtual Expr | visit (const FloatConst &op) |
| virtual Expr | visit (const BoolConst &op) |
| virtual Expr | visit (const Add &op) |
| virtual Expr | visit (const Sub &op) |
| virtual Expr | visit (const Mul &op) |
| virtual Expr | visit (const RealDiv &op) |
| virtual Expr | visit (const FloorDiv &op) |
| virtual Expr | visit (const CeilDiv &op) |
| virtual Expr | visit (const RoundTowards0Div &op) |
| virtual Expr | visit (const Mod &op) |
| virtual Expr | visit (const Remainder &op) |
| virtual Expr | visit (const Min &op) |
| virtual Expr | visit (const Max &op) |
| virtual Expr | visit (const LT &op) |
| virtual Expr | visit (const LE &op) |
| virtual Expr | visit (const GT &op) |
| virtual Expr | visit (const GE &op) |
| virtual Expr | visit (const EQ &op) |
| virtual Expr | visit (const NE &op) |
| virtual Expr | visit (const LAnd &op) |
| virtual Expr | visit (const LOr &op) |
| virtual Expr | visit (const LNot &op) |
| virtual Expr | visit (const Sqrt &op) |
| virtual Expr | visit (const Exp &op) |
| virtual Expr | visit (const Ln &op) |
| virtual Expr | visit (const Square &op) |
| virtual Expr | visit (const Sigmoid &op) |
| virtual Expr | visit (const Sin &op) |
| virtual Expr | visit (const Cos &op) |
| virtual Expr | visit (const Tan &op) |
| virtual Expr | visit (const Tanh &op) |
| virtual Expr | visit (const Abs &op) |
| virtual Expr | visit (const Floor &op) |
| virtual Expr | visit (const Ceil &op) |
| virtual Expr | visit (const Unbound &op) |
| virtual Stmt | visit (const For &op) |
| virtual Stmt | visit (const If &op) |
| virtual Stmt | visit (const Assert &op) |
| virtual Stmt | visit (const Assume &op) |
| virtual Expr | visit (const IfExpr &op) |
| virtual Expr | visit (const Cast &op) |
| virtual Expr | visit (const Intrinsic &op) |
| virtual Stmt | visit (const Eval &op) |
| virtual Stmt | visit (const MatMul &op) |
| virtual Stmt | visit (const MarkVersion &op) |
| virtual Expr | visit (const LoadAtVersion &op) |
Protected Member Functions inherited from freetensor::Mutator | |
| virtual Expr | visitExpr (const Expr &op) |
| virtual Stmt | visitStmt (const Stmt &op) |
| virtual Stmt | visit (const Any &op) |
| virtual Stmt | visit (const StmtSeq &op) |
| virtual Stmt | visit (const VarDef &op) |
| virtual Expr | visit (const Var &op) |
| virtual Stmt | visit (const Store &op) |
| virtual Stmt | visit (const Alloc &op) |
| virtual Stmt | visit (const Free &op) |
| virtual Expr | visit (const Load &op) |
| virtual Stmt | visit (const ReduceTo &op) |
| virtual Expr | visit (const AnyExpr &op) |
| virtual Expr | visit (const IntConst &op) |
| virtual Expr | visit (const FloatConst &op) |
| virtual Expr | visit (const BoolConst &op) |
| virtual Expr | visit (const Add &op) |
| virtual Expr | visit (const Sub &op) |
| virtual Expr | visit (const Mul &op) |
| virtual Expr | visit (const RealDiv &op) |
| virtual Expr | visit (const FloorDiv &op) |
| virtual Expr | visit (const CeilDiv &op) |
| virtual Expr | visit (const RoundTowards0Div &op) |
| virtual Expr | visit (const Mod &op) |
| virtual Expr | visit (const Remainder &op) |
| virtual Expr | visit (const Min &op) |
| virtual Expr | visit (const Max &op) |
| virtual Expr | visit (const LT &op) |
| virtual Expr | visit (const LE &op) |
| virtual Expr | visit (const GT &op) |
| virtual Expr | visit (const GE &op) |
| virtual Expr | visit (const EQ &op) |
| virtual Expr | visit (const NE &op) |
| virtual Expr | visit (const LAnd &op) |
| virtual Expr | visit (const LOr &op) |
| virtual Expr | visit (const LNot &op) |
| virtual Expr | visit (const Sqrt &op) |
| virtual Expr | visit (const Exp &op) |
| virtual Expr | visit (const Ln &op) |
| virtual Expr | visit (const Square &op) |
| virtual Expr | visit (const Sigmoid &op) |
| virtual Expr | visit (const Sin &op) |
| virtual Expr | visit (const Cos &op) |
| virtual Expr | visit (const Tan &op) |
| virtual Expr | visit (const Tanh &op) |
| virtual Expr | visit (const Abs &op) |
| virtual Expr | visit (const Floor &op) |
| virtual Expr | visit (const Ceil &op) |
| virtual Expr | visit (const Unbound &op) |
| virtual Stmt | visit (const For &op) |
| virtual Stmt | visit (const If &op) |
| virtual Stmt | visit (const Assert &op) |
| virtual Stmt | visit (const Assume &op) |
| virtual Expr | visit (const IfExpr &op) |
| virtual Expr | visit (const Cast &op) |
| virtual Expr | visit (const Intrinsic &op) |
| virtual Stmt | visit (const Eval &op) |
| virtual Stmt | visit (const MatMul &op) |
| virtual Stmt | visit (const MarkVersion &op) |
| virtual Expr | visit (const LoadAtVersion &op) |
Static Protected Member Functions | |
| static Const | castType (DataType type, const Const &val) |
Cast the data type of a Const node. | |
Additional Inherited Members | |
Public Types inherited from freetensor::Mutator | |
| typedef Expr | ExprRetType |
| typedef Stmt | StmtRetType |
Public Member Functions inherited from freetensor::Mutator | |
| virtual | ~Mutator () |
| virtual Stmt | operator() (const Stmt &op) final |
| virtual Expr | operator() (const Expr &op) final |
Calculate constant (sub)expressions
For propagating constants among statements, please refer to pass/scalar_prop_const and pass/tensor_prop_const
This Mutator can be inherited
|
inlinestaticprotected |
Cast the data type of a Const node.
| type | Target type |
| val | Constant node to be casted |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::CompTransientBounds< SymbolTable< ConstFold > >.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::CompTransientBounds< SymbolTable< ConstFold > >.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::CompTransientBounds< SymbolTable< ConstFold > >, and freetensor::SymbolTable< ConstFold >.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::CompTransientBounds< SymbolTable< ConstFold > >.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
|
overrideprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, freetensor::FloatSimplify, freetensor::MakeHeapAlloc, and freetensor::SimplifyPass.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::MakeHeapAlloc, and freetensor::SymbolTable< ConstFold >.