1#ifndef FREE_TENSOR_INLINED_INVOKE_H
2#define FREE_TENSOR_INLINED_INVOKE_H
4#include <unordered_map>
5#include <unordered_set>
15 const std::vector<FuncRet> &returns_;
19 std::vector<std::pair<int, Ref<Buffer>>> bufToReturn_;
22 StripReturns(
const std::vector<FuncRet> &returns) : returns_(returns) {}
34 const std::unordered_map<std::string, Ref<FrontendVar>> &kvs_;
35 const std::unordered_map<std::string, std::string> &renameRets_;
36 const std::unordered_set<std::string> &conflictNames_;
42 const std::unordered_map<std::string, std::string> &renameRets,
43 const std::unordered_set<std::string> &conflictNames)
44 : callSiteMetadata_(callSiteMetadata), kvs_(kvs),
45 renameRets_(renameRets), conflictNames_(conflictNames) {
71std::pair<Func, std::vector<std::pair<int, Ref<Buffer>>>>
92 const std::vector<Ref<FrontendVar>> &args,
93 const std::unordered_map<std::string, Ref<FrontendVar>> &kvs,
94 const std::vector<std::string> &retNames,
95 const std::unordered_set<std::string> &conflictNames,
96 bool forceAllowClosures =
false);
Definition: inlined_invoke.h:30
Stmt visitStmt(const Stmt &op) override
Definition: inlined_invoke.cc:24
Expr visit(const Load &op) override
Definition: inlined_invoke.cc:30
InlinedInvoke(const Metadata &callSiteMetadata, const std::unordered_map< std::string, Ref< FrontendVar > > &kvs, const std::unordered_map< std::string, std::string > &renameRets, const std::unordered_set< std::string > &conflictNames)
Definition: inlined_invoke.h:39
bool isValid() const
Definition: ref.h:89
Definition: inlined_invoke.h:14
const auto & bufToReturn() const
Definition: inlined_invoke.h:24
StripReturns(const std::vector< FuncRet > &returns)
Definition: inlined_invoke.h:22
Stmt visit(const VarDef &op) override
Definition: inlined_invoke.cc:12
Definition: symbol_table.h:122
BaseClass::StmtRetType visit(const VarDef &op) override
Definition: symbol_table.h:167
#define ASSERT(expr)
Definition: except.h:152
Definition: allocator.h:9
Ref< MetadataContent > Metadata
Definition: metadata.h:39
std::pair< Func, std::vector< std::pair< int, Ref< Buffer > > > > stripReturns(const Func &func)
Definition: inlined_invoke.cc:134
Ref< StmtNode > Stmt
Definition: ast.h:152
Ref< FuncNode > Func
Definition: func.h:64
Stmt inlinedInvoke(const Metadata &callSiteMetadata, const Func &func, const std::vector< Ref< FrontendVar > > &args, const std::unordered_map< std::string, Ref< FrontendVar > > &kvs, const std::vector< std::string > &retNames, const std::unordered_set< std::string > &conflictNames, bool forceAllowClosures=false)
Definition: inlined_invoke.cc:141