1#ifndef FREE_TENSOR_MAKE_REDUCTION_H
2#define FREE_TENSOR_MAKE_REDUCTION_H
5#include <unordered_set>
13 const std::unordered_set<ReduceOp> &types_;
17 MakeReduction(
const std::unordered_set<ReduceOp> &types,
bool canonicalOnly)
18 : types_(types), canonicalOnly_(canonicalOnly) {}
21 bool isSameElem(
const Store &s,
const Load &l);
24 std::optional<ASTNodeType> invBinOp = std::nullopt);
39 const std::unordered_set<ReduceOp> &types,
40 bool canonicalOnly =
false) {
Definition: make_reduction.h:12
MakeReduction(const std::unordered_set< ReduceOp > &types, bool canonicalOnly)
Definition: make_reduction.h:17
Stmt visit(const Store &op) override
Definition: make_reduction.cc:97
#define DEFINE_PASS_FOR_FUNC(pass)
Definition: func.h:88
Definition: allocator.h:9
ReduceOp
Definition: reduce_op.h:30
Stmt makeReduction(const Stmt &op, const std::unordered_set< ReduceOp > &types, bool canonicalOnly=false)
Definition: make_reduction.h:38
ASTNodeType
Definition: ast.h:20