1#ifndef FREE_TENSOR_COMP_UNIQUE_BOUNDS_PB_H
2#define FREE_TENSOR_COMP_UNIQUE_BOUNDS_PB_H
5#include <unordered_map>
6#include <unordered_set>
32 Bound(
Ref<std::unordered_map<std::string, Expr>> demangleMap,
40 std::optional<int64_t>
getInt()
const override;
52 const std::unordered_set<std::string> &scope)
const override;
55 const std::unordered_map<std::string, int>
56 &orderedScope)
const override;
66 std::unordered_map<Expr, Ref<Bound>> cachedValues_;
Definition: comp_transient_bounds.h:24
Definition: comp_unique_bounds_pb.h:22
Ref< CompUniqueBounds::Bound > restrictScope(const std::unordered_set< std::string > &scope) const override
Definition: comp_unique_bounds_pb.cc:98
Ref< std::unordered_map< std::string, Expr > > demangleMap_
Definition: comp_unique_bounds_pb.h:26
Bound(Ref< std::unordered_map< std::string, Expr > > demangleMap, PBSet bound)
Definition: comp_unique_bounds_pb.h:32
int64_t lowerInt() const override
Definition: comp_unique_bounds_pb.cc:20
Expr upperExpr() const override
Definition: comp_unique_bounds_pb.cc:79
PBSet bound_
Definition: comp_unique_bounds_pb.h:29
std::optional< int64_t > getInt() const override
Definition: comp_unique_bounds_pb.cc:32
int64_t upperInt() const override
Definition: comp_unique_bounds_pb.cc:26
Expr simplestExpr(const Expr &reference, const std::unordered_map< std::string, int > &orderedScope) const override
Definition: comp_unique_bounds_pb.cc:115
BoundType type() const override
Definition: comp_unique_bounds_pb.h:36
Expr lowerExpr() const override
Definition: comp_unique_bounds_pb.cc:74
std::tuple< Expr, Expr, Expr > lowerUpperDiffExpr() const
Definition: comp_unique_bounds_pb.cc:85
Definition: comp_unique_bounds_pb.h:20
Ref< CompUniqueBoundsPB::Bound > unionBoundsAsBound(const std::vector< Ref< CompUniqueBounds::Bound > > &bounds)
Definition: comp_unique_bounds_pb.cc:267
Ref< CompUniqueBounds::Bound > getBound(const Expr &op) override
Definition: comp_unique_bounds_pb.cc:201
std::pair< Expr, Expr > unionBounds(const std::vector< Ref< CompUniqueBounds::Bound > > &bounds) override
Definition: comp_unique_bounds_pb.cc:310
bool alwaysLE(const Expr &lhs, const Expr &rhs) override
Definition: comp_unique_bounds_pb.cc:250
bool alwaysLT(const Expr &lhs, const Expr &rhs) override
Definition: comp_unique_bounds_pb.cc:259
Definition: comp_unique_bounds.h:17
Definition: comp_unique_bounds.h:13
BoundType
Definition: comp_unique_bounds.h:15
Definition: gen_pb_expr.h:34
Definition: presburger.h:223
Definition: allocator.h:9
auto && lhs
Definition: const_fold.cc:70
auto auto && rhs
Definition: const_fold.cc:70