FreeTensor
Loading...
Searching...
No Matches
merge_tape_input.h
Go to the documentation of this file.
1#ifndef FREE_TENSOR_MERGE_TAPE_INPUT_H
2#define FREE_TENSOR_MERGE_TAPE_INPUT_H
3
4#include <unordered_map>
5#include <unordered_set>
6
8#include <mutator.h>
9
10namespace freetensor {
11
12class MergeTapeInput : public SymbolTable<Mutator> {
14
15 const std::unordered_map<Stmt, std::vector<VarDef>> &lca2newNodes_;
16 const std::unordered_set<std::string> &namesMerging_;
17
18 public:
20 const std::unordered_map<Stmt, std::vector<VarDef>> &lca2newNodes,
21 const std::unordered_set<std::string> &namesMerging)
22 : lca2newNodes_(lca2newNodes), namesMerging_(namesMerging) {}
23
24 protected:
25 using BaseClass::visit;
26 Stmt visitStmt(const Stmt &s) override;
27 Stmt visit(const VarDef &op) override;
28};
29
34Stmt mergeTapeInput(const Stmt &op);
35
36} // namespace freetensor
37
38#endif // FREE_TENSOR_MERGE_TAPE_INPUT_H
Definition: merge_tape_input.h:12
Stmt visit(const VarDef &op) override
Definition: merge_tape_input.cc:37
MergeTapeInput(const std::unordered_map< Stmt, std::vector< VarDef > > &lca2newNodes, const std::unordered_set< std::string > &namesMerging)
Definition: merge_tape_input.h:19
Stmt visitStmt(const Stmt &s) override
Definition: merge_tape_input.cc:10
Definition: symbol_table.h:122
BaseClass::StmtRetType visit(const VarDef &op) override
Definition: symbol_table.h:167
Definition: allocator.h:9
Ref< StmtNode > Stmt
Definition: ast.h:152
Stmt mergeTapeInput(const Stmt &op)
Definition: merge_tape_input.cc:48