|
FreeTensor
|
#include <cmath>#include <numeric>#include <string>#include <vector>#include <isl/constraint.h>#include <isl/set.h>#include <isl/space_type.h>#include <range/v3/numeric/accumulate.hpp>#include <analyze/check_not_modified.h>#include <analyze/deps.h>#include <analyze/find_stmt.h>#include <disjoint_set.h>#include <expr.h>#include <math/parse_pb_expr.h>#include <math/presburger.h>#include <pass/flatten_stmt_seq.h>#include <pass/hoist_var_over_stmt_seq.h>#include <pass/normalize_loops.h>#include <pass/shrink_for.h>#include <pass/simplify.h>#include <pass/sink_var.h>#include <schedule.h>#include <schedule/check_not_in_lib.h>#include <schedule/fuse.h>#include <schedule/pluto.h>#include <serialize/load_ast.h>#include <serialize/mangle.h>
Namespaces | |
| namespace | freetensor |
Functions | |
| std::pair< Stmt, std::pair< ID, int > > | freetensor::plutoFuse (const Stmt &ast, const ID &loop0, const ID &loop1, int nestLevel0, int nestLevel1, int fusableOverlapThreshold, int fusableNonOverlapTolerance, bool doSimplify=true) |
| std::pair< Stmt, std::pair< ID, int > > | freetensor::plutoPermute (const Stmt &ast, const ID &loop, int nestLevel, bool doSimplify=true) |
| Expr cond_ |
| ID fusedId_ |
| const std::vector<std::string>& fusedLoopsVar_ |
| For loop0_ = nullptr |
| ID loop0Id_ |
| For loop1_ = nullptr |
| ID loop1Id_ |
| const PermuteInfo& permute0_ |
| const PermuteInfo & permute1_ |
| const std::vector<std::string> & remainLoop0Var_ |
| const std::vector<std::string> & remainLoop1Var_ |
| std::unordered_map<std::string, Expr> replaceMap_ |
| std::vector<Expr> vars_ |