|
FreeTensor
|
#include <z3_simplify.h>


Public Member Functions | |
| Z3Simplify () | |
Public Member Functions inherited from freetensor::Mutator | |
| virtual | ~Mutator () |
| virtual Stmt | operator() (const Stmt &op) final |
| virtual Expr | operator() (const Expr &op) final |
Protected Member Functions | |
| int | getVarId (const Expr &op) |
| void | put (const Expr &key, const z3::expr &expr, const std::vector< std::optional< z3::expr > > &conds={}) |
| bool | exists (const Expr &key) |
| const z3::expr & | get (const Expr &key) |
| const std::vector< std::optional< z3::expr > > & | conds (const Expr &key) |
| void | push (const Expr &op) |
| void | pop () |
| bool | prove (const Expr &op) |
| Expr | visit (const Var &op) override |
| Expr | visit (const Load &op) override |
| Expr | visit (const IntConst &op) override |
| Expr | visit (const BoolConst &op) override |
| Expr | visit (const Add &op) override |
| Expr | visit (const Sub &op) override |
| Expr | visit (const Mul &op) override |
| Expr | visit (const FloorDiv &op) override |
| Expr | visit (const CeilDiv &op) override |
| Expr | visit (const Mod &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 IfExpr &op) override |
| Stmt | visit (const If &op) override |
| Stmt | visit (const Assert &op) override |
| Stmt | visit (const Assume &op) override |
| Stmt | visit (const For &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) |
Additional Inherited Members | |
Public Types inherited from freetensor::Mutator | |
| typedef Expr | ExprRetType |
| typedef Stmt | StmtRetType |
Simplify the AST using Z3
Comparing to SimplifyPass, Z3Simplify has the following features:
Z3Simplify can work on a root-less sub-AST, but in this case, it will not benefit from context from the missing ancestor nodes.
Z3Simplify is conflict with SymbolTable. If you want to use these two classes together, please use Z3SimplifyWithSymbolTable.
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
|
inlineprotectedvirtual |
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented from freetensor::Mutator.
Reimplemented in freetensor::Z3SimplifyWithSymbolTable.