FreeTensor
Loading...
Searching...
No Matches
Namespaces | Functions
pluto.cc File Reference
#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>
Include dependency graph for pluto.cc:

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)
 

Variable Documentation

◆ cond_

Expr cond_

◆ fusedId_

ID fusedId_

◆ fusedLoopsVar_

const std::vector<std::string>& fusedLoopsVar_

◆ loop0_

For loop0_ = nullptr

◆ loop0Id_

ID loop0Id_

◆ loop1_

For loop1_ = nullptr

◆ loop1Id_

ID loop1Id_

◆ permute0_

const PermuteInfo& permute0_

◆ permute1_

const PermuteInfo & permute1_

◆ remainLoop0Var_

const std::vector<std::string> & remainLoop0Var_

◆ remainLoop1Var_

const std::vector<std::string> & remainLoop1Var_

◆ replaceMap_

std::unordered_map<std::string, Expr> replaceMap_

◆ vars_

std::vector<Expr> vars_