FreeTensor
Loading...
Searching...
No Matches
flatten_stmt_seq.h
Go to the documentation of this file.
1#ifndef FREE_TENSOR_FLATTEN_STMT_SEQ_H
2#define FREE_TENSOR_FLATTEN_STMT_SEQ_H
3
4#include <func.h>
5#include <mutator.h>
6
7namespace freetensor {
8
9class FlattenStmtSeq : public Mutator {
10 bool isEmptySeq(const Stmt &s);
11
12 protected:
13 Stmt visit(const StmtSeq &op) override;
14 Stmt visit(const VarDef &op) override;
15 Stmt visit(const For &op) override;
16 Stmt visit(const If &op) override;
17 Stmt visit(const Assert &op) override;
18 Stmt visit(const Assume &op) override;
19};
20
29inline Stmt flattenStmtSeq(const Stmt &op) { return FlattenStmtSeq()(op); }
30
32
33} // namespace freetensor
34
35#endif // FREE_TENSOR_FLATTEN_STMT_SEQ_H
Definition: flatten_stmt_seq.h:9
Stmt visit(const StmtSeq &op) override
Definition: flatten_stmt_seq.cc:10
Definition: mutator.h:11
#define DEFINE_PASS_FOR_FUNC(pass)
Definition: func.h:88
Definition: allocator.h:9
Stmt flattenStmtSeq(const Stmt &op)
Definition: flatten_stmt_seq.h:29