1#ifndef FREE_TENSOR_STRUCTURAL_FEATURE_H
2#define FREE_TENSOR_STRUCTURAL_FEATURE_H
5#include <unordered_map>
6#include <unordered_set>
21 std::unordered_map<BaseDataType, int64_t>
opCnt_;
45 std::unordered_map<BaseDataType, int64_t> opCnt_;
46 std::unordered_map<MemType, int64_t> loadCnt_, storeCnt_, accessCnt_;
48 std::unordered_map<MemType, int64_t> innerLoadArea_, innerStoreArea_,
54 std::unordered_map<std::string, std::vector<CompAccessBound::Access>>
55 loads_, stores_, accesses_;
60 std::unordered_map<ID, NodeFeature> features_;
61 std::unordered_map<AST, NodeInfo> info_;
64 const std::unordered_map<ID, NodeFeature> &
features()
const {
69 void updCompInfo(
const AST &parent,
const AST &child,
int repeat = 1);
70 void updAccCntInfo(
const AST &parent,
const AST &child,
int repeat = 1);
71 void updAreaInfo(
const AST &parent,
const AST &child);
72 void updInfo(
const AST &parent,
const AST &child,
75 void calcCompFeatures(
const Stmt &parent);
76 void calcAccCntFeatures(
const Stmt &parent);
77 int64_t calcArea(
const std::string &var,
78 const std::vector<CompAccessBound::Access> &accesses);
79 void calcAreaFeatures(
const Stmt &parent);
80 void calcFeatures(
const Stmt &parent);
99 void visit(
const If &op)
override;
Definition: comp_transient_bounds.h:50
BaseClass::StmtRetType visit(const For &op) override
Definition: comp_transient_bounds.h:128
Definition: structural_feature.h:38
void visit(const Load &op) override
Definition: structural_feature.cc:205
const std::unordered_map< ID, NodeFeature > & features() const
Definition: structural_feature.h:64
void visitExpr(const Expr &op) override
Definition: structural_feature.cc:195
void visitStmt(const Stmt &op) override
Definition: structural_feature.cc:187
Definition: allocator.h:9
std::unordered_map< ID, NodeFeature > structuralFeature(const Stmt &op)
Definition: structural_feature.h:105
Definition: structural_feature.h:19
std::unordered_map< BaseDataType, int64_t > opCnt_
Definition: structural_feature.h:21
std::unordered_map< MemType, int64_t > loadCnt_
Definition: structural_feature.h:22
std::unordered_map< MemType, int64_t > storeCnt_
Definition: structural_feature.h:22
std::unordered_map< MemType, int64_t > loadArea_
Definition: structural_feature.h:24
std::unordered_map< MemType, int64_t > accessCnt_
Definition: structural_feature.h:23
std::unordered_map< MemType, int64_t > storeArea_
Definition: structural_feature.h:24
std::unordered_map< MemType, int64_t > accessArea_
Definition: structural_feature.h:25