|
FreeTensor
|
#include <mutator.h>

Public Types | |
| typedef Expr | ExprRetType |
| typedef Stmt | StmtRetType |
Public Member Functions | |
| virtual | ~Mutator () |
| virtual Stmt | operator() (const Stmt &op) final |
| virtual Expr | operator() (const Expr &op) final |
Protected Member Functions | |
| 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) |
| typedef Expr freetensor::Mutator::ExprRetType |
| typedef Stmt freetensor::Mutator::StmtRetType |
|
inlinevirtual |
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::CompTransientBounds< SymbolTable< Mutator > >, freetensor::CompTransientBounds< SymbolTable< ConstFold > >, freetensor::Grad, freetensor::AnnotateConds, freetensor::FlattenStmtSeq, freetensor::SimplifyPass, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::BlendPass, freetensor::FissionFor, and freetensor::HoistSelectedVar.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::CompTransientBounds< SymbolTable< Mutator > >, freetensor::CompTransientBounds< SymbolTable< ConstFold > >, freetensor::AnnotateConds, freetensor::FlattenStmtSeq, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, and freetensor::HoistSelectedVar.
|
inlineprotectedvirtual |
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::CompTransientBounds< SymbolTable< Mutator > >, freetensor::CompTransientBounds< SymbolTable< ConstFold > >, freetensor::SymbolTable< Mutator >, freetensor::SymbolTable< ConstFold >, freetensor::Grad, freetensor::InlinedInvoke, freetensor::AnnotateConds, freetensor::cpu::LowerParallelReduction, freetensor::FlattenStmtSeq, freetensor::gpu::NormalizeVarInKernel, freetensor::HoistReturnVars, freetensor::HoistVarOverStmtSeq, freetensor::InsertAlloc, freetensor::InsertFree, freetensor::MakeHeapAlloc, freetensor::MakeLoopCarriedReduction, freetensor::MakeSyncReduction, freetensor::MergeAndHoistIf, freetensor::MoveOutFirstOrLastIter, freetensor::NormalizeLoops, freetensor::RemoveDeadVar, freetensor::RemoveWrites, freetensor::RenameVar, freetensor::ScalarPropConst, freetensor::ShrinkFor, freetensor::SimplifyPass, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::Z3SimplifyWithSymbolTable, freetensor::AsMatMul, freetensor::BlendPass, freetensor::AddDimToVar, freetensor::FissionFor, freetensor::FuseFor, freetensor::HoistSelectedVar, freetensor::MergeFor, freetensor::Parallelize, freetensor::RenameIter, freetensor::Reorder, freetensor::SeparateTail, freetensor::Splitter, freetensor::BackUnroll, freetensor::ImmediateUnroll, freetensor::Vectorize, and freetensor::Permute.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::CompTransientBounds< SymbolTable< Mutator > >, freetensor::CompTransientBounds< SymbolTable< ConstFold > >, freetensor::Grad, freetensor::AnnotateConds, freetensor::FlattenStmtSeq, freetensor::InsertAlloc, freetensor::InsertFree, freetensor::RemoveWrites, freetensor::ScalarPropConst, freetensor::SimplifyPass, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::BlendPass, freetensor::FissionFor, freetensor::HoistSelectedVar, and freetensor::SeparateTail.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, and freetensor::Z3SimplifyWithSymbolTable.
Reimplemented in freetensor::ScalarPropConst, freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::OutputIntermediates, freetensor::ReplaceBySaved, freetensor::InlinedInvoke, freetensor::HoistVarOverStmtSeq, freetensor::ClearDataType, freetensor::UpdateDType, freetensor::RemoveDeadVar, freetensor::RenameVar, freetensor::ReplaceUses, freetensor::ShrinkVar, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::BlendPass, freetensor::MakeCacheVar, freetensor::MakeInitAndReduce, freetensor::AddDimToVar, freetensor::FissionFor, freetensor::MakeInline, freetensor::VarMerge, freetensor::VarReorder, and freetensor::VarSplit.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::InsertUserGrad, freetensor::Grad, freetensor::OutputIntermediates, freetensor::InlinedInvoke, freetensor::cpu::LowerParallelReduction, freetensor::HoistVarOverStmtSeq, freetensor::MakeLoopCarriedReduction, freetensor::MakeSyncReduction, freetensor::RefineSignDataType, freetensor::RemoveAllWrites, freetensor::RemoveDeadVar, freetensor::RemoveWrites, freetensor::RenameVar, freetensor::ReplaceUses, freetensor::ScalarPropConst, freetensor::ShrinkVar, freetensor::SimplifyPass, freetensor::UndoMakeReduction, freetensor::AsMatMul, freetensor::BlendPass, freetensor::MakeCacheVar, freetensor::MakeInitAndReduce, freetensor::AddDimToVar, freetensor::FissionFor, freetensor::MakeInline, freetensor::VarMerge, freetensor::VarReorder, and freetensor::VarSplit.
|
inlineprotectedvirtual |
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::Grad, freetensor::AnnotateConds, freetensor::FlattenStmtSeq, freetensor::HoistVarOverStmtSeq, freetensor::InsertAlloc, freetensor::InsertFree, freetensor::MergeAndHoistIf, freetensor::RemoveDeadVar, freetensor::RemoveWrites, freetensor::FissionFor, freetensor::FuseFor, freetensor::HoistSelectedVar, freetensor::MergeFor, freetensor::Reorder, and freetensor::Swap.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::InsertUserGrad, freetensor::Grad, freetensor::OutputIntermediates, freetensor::InlinedInvoke, freetensor::HoistVarOverStmtSeq, freetensor::MakeReduction, freetensor::RefineSignDataType, freetensor::RemoveAllWrites, freetensor::RemoveDeadVar, freetensor::RemoveWrites, freetensor::RenameVar, freetensor::ShrinkVar, freetensor::AsMatMul, freetensor::BlendPass, freetensor::MakeCacheVar, freetensor::MakeInitAndReduce, freetensor::AddDimToVar, freetensor::FissionFor, freetensor::MakeInline, freetensor::VarMerge, freetensor::VarReorder, freetensor::VarSplit, and freetensor::ScalarPropConst.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::HoistVarOverStmtSeq, freetensor::NormalizeLoops, freetensor::RenameVar, freetensor::ReplaceIter, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::BlendPass, freetensor::FuseFor, freetensor::MergeFor, freetensor::RenameIter, freetensor::Splitter, freetensor::ImmediateUnroll, and freetensor::Permute.
Reimplemented in freetensor::ConstFold, freetensor::MakeHeapAlloc, freetensor::Z3Simplify, freetensor::Z3SimplifyWithSymbolTable, freetensor::SymbolTable< Mutator >, freetensor::SymbolTable< ConstFold >, freetensor::DedupTapeNames, freetensor::InsertUserGrad, freetensor::Grad, freetensor::MergeTapeInput, freetensor::OutputIntermediates, freetensor::StripReturns, freetensor::InlinedInvoke, freetensor::FlattenStmtSeq, freetensor::gpu::NormalizeVarInKernel, freetensor::HoistReturnVars, freetensor::HoistVarOverStmtSeq, freetensor::MakeHeapAlloc, freetensor::MergeAndHoistIf, freetensor::ClearDataType, freetensor::UpdateDType, freetensor::RefineSignDataType, freetensor::RemoveDeadVar, freetensor::RenameVar, freetensor::ShrinkVar, freetensor::SimplifyPass, freetensor::SinkVar, freetensor::Z3SimplifyWithSymbolTable, freetensor::AsMatMul, freetensor::BlendPass, freetensor::MakeCacheVar, freetensor::MakeFillAndFlush, freetensor::MakeInitAndReduce, freetensor::AddDimToVar, freetensor::FissionFor, freetensor::MakeInline, freetensor::SeparateTail, freetensor::SetMemType, freetensor::VarMerge, freetensor::VarReorder, freetensor::VarSplit, and freetensor::ScalarPropConst.
Reimplemented in freetensor::ReplaceBySaved, freetensor::FloatSimplify, and freetensor::SimplifyPass.
Reimplemented in freetensor::InsertTmpEval, freetensor::TrackStmt< Mutator >, freetensor::InlinedInvoke, freetensor::SimplifyPass, freetensor::UseBuiltinDiv, freetensor::AsMatMul, freetensor::MakeCacheVar, freetensor::MakeFillAndFlush, freetensor::MakeInitAndReduce, freetensor::FissionFor, freetensor::WrapMetadata, freetensor::ImmediateUnroll, freetensor::RenewIDs< SymbolTable< Mutator > >, freetensor::Grad, freetensor::MergeTapeInput, freetensor::RemoveDeadVar, freetensor::ShrinkVar, freetensor::OutputIntermediates, and freetensor::ShrinkFor.