FreeTensor
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
stmt.h File Reference
#include <string>
#include <vector>
#include <ast.h>
#include <buffer.h>
#include <container_utils.h>
#include <cutlass_micro_kernel_property.h>
#include <except.h>
#include <for_property.h>
#include <reduce_op.h>
Include dependency graph for stmt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  freetensor::AnyNode
 
class  freetensor::StmtSeqNode
 
class  freetensor::VarDefNode
 
class  freetensor::StoreNode
 
class  freetensor::AllocNode
 
class  freetensor::FreeNode
 
class  freetensor::ReduceToNode
 
class  freetensor::ForNode
 
class  freetensor::IfNode
 
class  freetensor::AssertNode
 
class  freetensor::AssumeNode
 
class  freetensor::EvalNode
 
class  freetensor::MatMulNode
 
class  freetensor::MarkVersionNode
 

Namespaces

namespace  freetensor
 

Typedefs

typedef Ref< AnyNode > freetensor::Any
 
typedef Ref< StmtSeqNode > freetensor::StmtSeq
 
typedef Ref< VarDefNode > freetensor::VarDef
 
typedef Ref< StoreNode > freetensor::Store
 
typedef Ref< AllocNode > freetensor::Alloc
 
typedef Ref< FreeNode > freetensor::Free
 
typedef Ref< ReduceToNode > freetensor::ReduceTo
 
typedef Ref< ForNode > freetensor::For
 
typedef Ref< IfNode > freetensor::If
 
typedef Ref< AssertNode > freetensor::Assert
 
typedef Ref< AssumeNode > freetensor::Assume
 
typedef Ref< EvalNode > freetensor::Eval
 
typedef Ref< MatMulNode > freetensor::MatMul
 
typedef Ref< MarkVersionNode > freetensor::MarkVersion
 

Enumerations

enum class  freetensor::MatMulBackend : size_t {
  freetensor::Mkl = 0 , freetensor::Cublas , freetensor::Cutlass , freetensor::CutlassMicroBlock ,
  freetensor::CutlassMicroThread , freetensor::NumBackends
}
 

Functions

Stmt freetensor::makeAny (std::source_location loc=std::source_location::current())
 
template<class Tstmts >
Stmt freetensor::makeStmtSeq (Tstmts &&stmts, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
Stmt freetensor::makeStmtSeq (std::initializer_list< Stmt > stmts, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tbuffer , class Tbody >
Stmt freetensor::makeVarDef (const std::string &name, Tbuffer &&buffer, const std::optional< std::string > &viewOf, Tbody &&body, bool pinned, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tindices , class Texpr >
Stmt freetensor::makeStore (const std::string &var, Tindices &&indices, Texpr &&expr, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Texpr >
Stmt freetensor::makeStore (const std::string &var, const std::vector< Expr > &indices, Texpr &&expr, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
Stmt freetensor::makeAlloc (const std::string &var, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
Stmt freetensor::makeFree (const std::string &var, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tindices , class Texpr >
Stmt freetensor::makeReduceTo (const std::string &var, Tindices &&indices, ReduceOp op, Texpr &&expr, bool sync, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Texpr >
Stmt freetensor::makeReduceTo (const std::string &var, const std::vector< Expr > &indices, ReduceOp op, Texpr &&expr, bool sync, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tbegin , class Tend , class Tstep , class Tlen , class Tbody , class Tproperty >
Stmt freetensor::makeFor (const std::string &iter, Tbegin &&begin, Tend &&end, Tstep &&step, Tlen &&len, Tproperty &&property, Tbody &&body, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tcond , class Tthen , class Telse = std::nullptr_t>
Stmt freetensor::makeIf (Tcond &&cond, Tthen &&thenCase, Telse &&elseCase, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tcond , class Tthen , class Telse = std::nullptr_t>
Stmt freetensor::makeIf (Tcond &&cond, Tthen &&thenCase, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tcond , class Tbody >
Stmt freetensor::makeAssert (Tcond &&cond, Tbody &&body, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class Tcond , class Tbody >
Stmt freetensor::makeAssume (Tcond &&cond, Tbody &&body, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
template<class T >
Stmt freetensor::makeEval (T &&expr, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
std::ostream & freetensor::operator<< (std::ostream &os, MatMulBackend backend)
 
MatMulBackend freetensor::parseMatMulBackend (const std::string &_str)
 
Stmt freetensor::makeMatMul (MatMulBackend backend, const Ref< CutlassMicroKernelProperty > &cutlassMicroKernelProperty, const Expr &a, const Expr &b, const Expr &c, const Expr &alpha, const Expr &beta, const Expr &m, const Expr &k, const Expr &n, const Expr &lda, const Expr &ldb, const Expr &ldc, const Expr &stridea, const Expr &strideb, const Expr &stridec, const Expr &batchSize, bool aIsRowMajor, bool bIsRowMajor, bool cIsRowMajor, const Stmt &equivalent, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 
Stmt freetensor::makeMarkVersion (const std::string &tapeName, const std::string &var, const Metadata &metadata=nullptr, const ID &id={}, std::source_location loc=std::source_location::current())
 

Variables

constexpr std::array freetensor::matMulBackendNames