1#ifndef FREE_TENSOR_VAR_SPLIT_H
2#define FREE_TENSOR_VAR_SPLIT_H
12 std::string var_, newVar_;
20 VarSplit(
const ID &def,
int dim,
bool fixedSize,
int factor,
int nparts)
21 : def_(def), dim_(dim), fixedSize_(fixedSize), factor_(factor),
24 bool found()
const {
return found_; }
27 template <
class T> T splitMemAcc(
const T &op) {
28 if (op->var_ == var_) {
30 Expr x = op->indices_[dim_];
32 op->indices_.insert(op->indices_.begin() + dim_ + 1,
46 int factor,
int nparts);
Definition: var_split.h:10
Stmt visit(const VarDef &op) override
Definition: var_split.cc:7
bool found() const
Definition: var_split.h:24
VarSplit(const ID &def, int dim, bool fixedSize, int factor, int nparts)
Definition: var_split.h:20
Definition: allocator.h:9
Ref< VarDefNode > VarDef
Definition: stmt.h:107
Ref< LoadNode > Load
Definition: expr.h:61
Ref< StoreNode > Store
Definition: stmt.h:140
Expr makeFloorDiv(T &&lhs, U &&rhs, std::source_location loc=std::source_location::current())
Definition: expr.h:239
Ref< ReduceToNode > ReduceTo
Definition: stmt.h:248
Expr makeMod(T &&lhs, U &&rhs, std::source_location loc=std::source_location::current())
Definition: expr.h:303
Ref< StmtNode > Stmt
Definition: ast.h:152
VarSplitMode
Definition: var_split.h:8
@ FixedSize
Definition: var_split.h:8
@ RelaxedSize
Definition: var_split.h:8
Stmt varSplit(const Stmt &ast, const ID &def, int dim, VarSplitMode mode, int factor, int nparts)
Definition: var_split.cc:86
Ref< ExprNode > Expr
Definition: ast.h:184