1#ifndef FREE_TENSOR_COMP_UNIQUE_BOUNDS_H
2#define FREE_TENSOR_COMP_UNIQUE_BOUNDS_H
6#include <unordered_map>
7#include <unordered_set>
21 const std::unordered_map<std::string, int> &orderedScope);
42 virtual std::optional<int64_t>
getInt()
const = 0;
57 const Expr &reference,
58 const std::unordered_map<std::string, int> &orderedScope)
const = 0;
80 virtual std::pair<Expr, Expr>
Definition: comp_transient_bounds.h:24
Definition: comp_unique_bounds.h:17
static int countScope(const Expr &op, const std::unordered_map< std::string, int > &orderedScope)
Definition: comp_unique_bounds.cc:33
virtual BoundType type() const =0
virtual ~Bound()
Definition: comp_unique_bounds.h:25
virtual Expr simplestExpr(const Expr &reference, const std::unordered_map< std::string, int > &orderedScope) const =0
virtual std::optional< int64_t > getInt() const =0
virtual Ref< Bound > restrictScope(const std::unordered_set< std::string > &scope) const =0
static int countHeavyOps(const Expr &op)
Definition: comp_unique_bounds.cc:27
virtual int64_t upperInt() const =0
virtual Expr lowerExpr() const =0
virtual Expr upperExpr() const =0
virtual int64_t lowerInt() const =0
Definition: comp_unique_bounds.h:13
virtual std::pair< Expr, Expr > unionBounds(const std::vector< Ref< Bound > > &bounds)=0
int64_t getIntLower(const Expr &op)
Definition: comp_unique_bounds.h:71
virtual bool alwaysLE(const Expr &lhs, const Expr &rhs)=0
virtual ~CompUniqueBounds()
Definition: comp_unique_bounds.h:67
int64_t getIntUpper(const Expr &op)
Definition: comp_unique_bounds.h:72
virtual bool alwaysLT(const Expr &lhs, const Expr &rhs)=0
CompUniqueBounds(const CompTransientBoundsInterface &transients)
Definition: comp_unique_bounds.h:65
virtual Ref< Bound > getBound(const Expr &op)=0
std::optional< int64_t > getInt(const Expr &op)
Definition: comp_unique_bounds.h:73
BoundType
Definition: comp_unique_bounds.h:15
const CompTransientBoundsInterface & transients_
Definition: comp_unique_bounds.h:62
Definition: allocator.h:9
auto && lhs
Definition: const_fold.cc:70
auto auto && rhs
Definition: const_fold.cc:70