1#ifndef FREE_TENSOR_VISITOR_H
2#define FREE_TENSOR_VISITOR_H
42 for (
auto &&stmt : op->
stmts_) {
48 for (
auto &&dim : op->
buffer_->tensor()->shape()) {
68 for (
auto &&index : op->indices_) {
181 virtual void visit(
const LNot &op) { (*this)(op->expr_); }
183 virtual void visit(
const Sqrt &op) { (*this)(op->expr_); }
185 virtual void visit(
const Exp &op) { (*this)(op->expr_); }
187 virtual void visit(
const Ln &op) { (*this)(op->expr_); }
193 virtual void visit(
const Sin &op) { (*this)(op->expr_); }
195 virtual void visit(
const Cos &op) { (*this)(op->expr_); }
197 virtual void visit(
const Tan &op) { (*this)(op->expr_); }
199 virtual void visit(
const Tanh &op) { (*this)(op->expr_); }
201 virtual void visit(
const Abs &op) { (*this)(op->expr_); }
205 virtual void visit(
const Ceil &op) { (*this)(op->expr_); }
213 for (
auto &&r : op->
property_->reductions_) {
214 for (
auto &&item : r->begins_) {
217 for (
auto &&item : r->ends_) {
226 (*this)(op->thenCase_);
228 (*this)(op->elseCase_);
244 (*this)(op->thenCase_);
245 (*this)(op->elseCase_);
248 virtual void visit(
const Cast &op) { (*this)(op->expr_); }
251 for (
auto &¶m : op->params_) {
256 virtual void visit(
const Eval &op) { (*this)(op->expr_); }
270 (*this)(op->stridea_);
271 (*this)(op->strideb_);
272 (*this)(op->stridec_);
273 (*this)(op->batchSize_);
274 (*this)(op->equivalent_);
280 for (
auto &&idx : op->indices_) {
SubTree< ForProperty > property_
Definition: stmt.h:298
SubTree< ExprNode > begin_
Definition: stmt.h:294
SubTree< ExprNode > len_
Definition: stmt.h:297
SubTree< ExprNode > end_
Definition: stmt.h:295
SubTree< StmtNode > body_
Definition: stmt.h:299
SubTree< StmtNode > body_
Definition: func.h:56
SubTreeList< ExprNode > indices_
Definition: stmt.h:232
SubTree< ExprNode > expr_
Definition: stmt.h:234
bool isValid() const
Definition: ref.h:89
SubTreeList< StmtNode > stmts_
Definition: stmt.h:44
SubTree< ExprNode > expr_
Definition: stmt.h:136
SubTreeList< ExprNode > indices_
Definition: stmt.h:135
SubTree< StmtNode > body_
Definition: stmt.h:101
SubTree< Buffer > buffer_
Definition: stmt.h:86
virtual void visit(const RealDiv &op)
Definition: visitor.h:101
virtual void visit(const Ln &op)
Definition: visitor.h:187
virtual void visit(const Sin &op)
Definition: visitor.h:193
virtual void visit(const VarDef &op)
Definition: visitor.h:47
virtual void visit(const ReduceTo &op)
Definition: visitor.h:73
virtual void visit(const Intrinsic &op)
Definition: visitor.h:250
virtual void visit(const Cast &op)
Definition: visitor.h:248
virtual void visit(const FloatConst &op)
Definition: visitor.h:82
virtual void visit(const Min &op)
Definition: visitor.h:131
virtual void visit(const AnyExpr &op)
Definition: visitor.h:37
virtual void visit(const Assert &op)
Definition: visitor.h:232
virtual void visit(const IfExpr &op)
Definition: visitor.h:242
virtual void visit(const Load &op)
Definition: visitor.h:67
virtual void visit(const Mod &op)
Definition: visitor.h:121
virtual void visit(const Add &op)
Definition: visitor.h:86
virtual void visit(const Remainder &op)
Definition: visitor.h:126
virtual void visit(const Any &op)
Definition: visitor.h:36
virtual void visit(const Mul &op)
Definition: visitor.h:96
virtual void visit(const FloorDiv &op)
Definition: visitor.h:106
virtual void visit(const Abs &op)
Definition: visitor.h:201
virtual void visit(const Cos &op)
Definition: visitor.h:195
virtual void visit(const GE &op)
Definition: visitor.h:156
virtual void visit(const MatMul &op)
Definition: visitor.h:258
virtual ~Visitor()
Definition: visitor.h:16
virtual void visit(const Tan &op)
Definition: visitor.h:197
virtual void visit(const Alloc &op)
Definition: visitor.h:63
virtual void visit(const LNot &op)
Definition: visitor.h:181
virtual void visit(const Ceil &op)
Definition: visitor.h:205
virtual void visit(const Floor &op)
Definition: visitor.h:203
virtual void visit(const LoadAtVersion &op)
Definition: visitor.h:279
virtual void visitExpr(const Expr &op)
Definition: visitor.cc:6
virtual void visit(const BoolConst &op)
Definition: visitor.h:84
virtual void visit(const MarkVersion &op)
Definition: visitor.h:277
virtual void visit(const Func &op)
Definition: visitor.h:39
virtual void visit(const LOr &op)
Definition: visitor.h:176
virtual void visit(const LE &op)
Definition: visitor.h:146
virtual void visit(const GT &op)
Definition: visitor.h:151
void ExprRetType
Definition: visitor.h:13
virtual void visit(const LAnd &op)
Definition: visitor.h:171
virtual void visit(const NE &op)
Definition: visitor.h:166
virtual void visit(const LT &op)
Definition: visitor.h:141
virtual void visit(const Max &op)
Definition: visitor.h:136
virtual void visit(const IntConst &op)
Definition: visitor.h:80
virtual void visit(const EQ &op)
Definition: visitor.h:161
void StmtRetType
Definition: visitor.h:14
virtual void visit(const For &op)
Definition: visitor.h:209
virtual void visit(const Var &op)
Definition: visitor.h:54
virtual void visit(const If &op)
Definition: visitor.h:224
virtual void visit(const StmtSeq &op)
Definition: visitor.h:41
virtual void visit(const Tanh &op)
Definition: visitor.h:199
virtual void operator()(const AST &op) final
Definition: visitor.cc:89
virtual void visit(const Store &op)
Definition: visitor.h:56
virtual void visit(const Sub &op)
Definition: visitor.h:91
virtual void visit(const Exp &op)
Definition: visitor.h:185
virtual void visit(const Square &op)
Definition: visitor.h:189
virtual void visit(const Sqrt &op)
Definition: visitor.h:183
virtual void visit(const Sigmoid &op)
Definition: visitor.h:191
virtual void visit(const Assume &op)
Definition: visitor.h:237
virtual void visit(const Unbound &op)
Definition: visitor.h:207
virtual void visitStmt(const Stmt &op)
Definition: visitor.cc:62
virtual void visit(const Eval &op)
Definition: visitor.h:256
virtual void visit(const Free &op)
Definition: visitor.h:65
virtual void visit(const CeilDiv &op)
Definition: visitor.h:111
virtual void visit(const RoundTowards0Div &op)
Definition: visitor.h:116
Definition: allocator.h:9