1#ifndef FREE_TENSOR_CHECK_LOOP_ORDER_H
2#define FREE_TENSOR_CHECK_LOOP_ORDER_H
5#include <unordered_set>
21 std::vector<ID> dstOrder_;
22 std::vector<For> curOrder_, outerLoops_, outerLoopStack_;
23 std::vector<StmtSeq> stmtSeqStack_, stmtSeqInBetween_;
24 std::unordered_set<std::string> itersDefinedInNest_;
25 bool reqireRangeDefinedOutside_;
30 bool reqireRangeDefinedOutside =
true)
31 : dstOrder_(dstOrder),
32 reqireRangeDefinedOutside_(reqireRangeDefinedOutside) {}
37 const std::vector<For> &
order()
const;
44 return stmtSeqInBetween_;
50 const std::vector<For> &
outerLoops()
const {
return outerLoops_; }
Definition: check_loop_order.h:20
void visit(const For &op) override
Definition: check_loop_order.cc:16
const std::vector< For > & outerLoops() const
Definition: check_loop_order.h:50
const std::vector< StmtSeq > & stmtSeqInBetween() const
Definition: check_loop_order.h:43
CheckLoopOrder(const std::vector< ID > &dstOrder, bool reqireRangeDefinedOutside=true)
Definition: check_loop_order.h:29
const std::vector< For > & order() const
Definition: check_loop_order.cc:62
void visitStmt(const Stmt &stmt) override
Definition: check_loop_order.cc:9
Definition: allocator.h:9