FreeTensor
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions
func.h File Reference
#include <iostream>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
#include <ast.h>
#include <buffer.h>
#include <driver/array.h>
#include <stmt.h>
#include <tensor.h>
Include dependency graph for func.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  freetensor::FuncParam
 
struct  freetensor::FuncRet
 
class  freetensor::FuncNode
 

Namespaces

namespace  freetensor
 

Macros

#define DEFINE_PASS_FOR_FUNC(pass)
 

Typedefs

typedef Ref< FuncNode > freetensor::Func
 

Functions

std::ostream & freetensor::operator<< (std::ostream &os, const FuncParam &p)
 
std::ostream & freetensor::operator<< (std::ostream &os, const FuncRet &r)
 
template<class Tbody , class Tparams , class Treturns , class Tclosure >
Func freetensor::makeFunc (const std::string &name, Tparams &&params, Treturns &&returns, Tbody &&body)
 
template<class Tbody >
Func freetensor::makeFunc (const std::string &name, const std::vector< FuncParam > &params, const std::vector< FuncRet > &returns, Tbody &&body)
 
Func freetensor::deepCopy (const Func &func)
 

Macro Definition Documentation

◆ DEFINE_PASS_FOR_FUNC

#define DEFINE_PASS_FOR_FUNC (   pass)
Value:
template <typename... T> Func pass(const Func &func, T &&...args) { \
return makeFunc(func->name_, func->params_, func->returns_, \
pass(func->body_, std::forward<T>(args)...)); \
}