FreeTensor
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
freetensor::CompUniqueBoundsPB::Bound Class Reference

#include <comp_unique_bounds_pb.h>

Inheritance diagram for freetensor::CompUniqueBoundsPB::Bound:
Inheritance graph
[legend]
Collaboration diagram for freetensor::CompUniqueBoundsPB::Bound:
Collaboration graph
[legend]

Public Member Functions

 Bound (Ref< std::unordered_map< std::string, Expr > > demangleMap, PBSet bound)
 
BoundType type () const override
 
int64_t lowerInt () const override
 
int64_t upperInt () const override
 
std::optional< int64_t > getInt () const override
 
Expr lowerExpr () const override
 
Expr upperExpr () const override
 
std::tuple< Expr, Expr, ExprlowerUpperDiffExpr () const
 
Ref< CompUniqueBounds::BoundrestrictScope (const std::unordered_set< std::string > &scope) const override
 
Expr simplestExpr (const Expr &reference, const std::unordered_map< std::string, int > &orderedScope) const override
 
- Public Member Functions inherited from freetensor::CompUniqueBounds::Bound
virtual ~Bound ()
 
virtual BoundType type () const =0
 
virtual std::optional< int64_t > getInt () const =0
 
virtual Ref< BoundrestrictScope (const std::unordered_set< std::string > &scope) const =0
 
virtual Expr simplestExpr (const Expr &reference, const std::unordered_map< std::string, int > &orderedScope) const =0
 

Public Attributes

Ref< std::unordered_map< std::string, Expr > > demangleMap_
 
PBSet bound_
 

Additional Inherited Members

- Static Protected Member Functions inherited from freetensor::CompUniqueBounds::Bound
static int countScope (const Expr &op, const std::unordered_map< std::string, int > &orderedScope)
 
static int countHeavyOps (const Expr &op)
 

Constructor & Destructor Documentation

◆ Bound()

freetensor::CompUniqueBoundsPB::Bound::Bound ( Ref< std::unordered_map< std::string, Expr > >  demangleMap,
PBSet  bound 
)
inline

Member Function Documentation

◆ getInt()

std::optional< int64_t > freetensor::CompUniqueBoundsPB::Bound::getInt ( ) const
overridevirtual

If the bounded value is a constant integer, return it

Implements freetensor::CompUniqueBounds::Bound.

◆ lowerExpr()

Expr freetensor::CompUniqueBoundsPB::Bound::lowerExpr ( ) const
overridevirtual

Return an Expr for the bound. In case of no solution, return nullptr

Implements freetensor::CompUniqueBounds::Bound.

◆ lowerInt()

int64_t freetensor::CompUniqueBoundsPB::Bound::lowerInt ( ) const
overridevirtual

Get an integer bound. In case of no solution, return LLONG_MAX or LLONG_MIN

Implements freetensor::CompUniqueBounds::Bound.

◆ lowerUpperDiffExpr()

std::tuple< Expr, Expr, Expr > freetensor::CompUniqueBoundsPB::Bound::lowerUpperDiffExpr ( ) const

Fused function returning lowerExpr(), upperExpr() and upperExpr() - lowerExpr(), with less redundant computation

◆ restrictScope()

Ref< CompUniqueBounds::Bound > freetensor::CompUniqueBoundsPB::Bound::restrictScope ( const std::unordered_set< std::string > &  scope) const
overridevirtual

◆ simplestExpr()

Expr freetensor::CompUniqueBoundsPB::Bound::simplestExpr ( const Expr reference,
const std::unordered_map< std::string, int > &  orderedScope 
) const
overridevirtual

◆ type()

BoundType freetensor::CompUniqueBoundsPB::Bound::type ( ) const
inlineoverridevirtual

◆ upperExpr()

Expr freetensor::CompUniqueBoundsPB::Bound::upperExpr ( ) const
overridevirtual

◆ upperInt()

int64_t freetensor::CompUniqueBoundsPB::Bound::upperInt ( ) const
overridevirtual

Member Data Documentation

◆ bound_

PBSet freetensor::CompUniqueBoundsPB::Bound::bound_

◆ demangleMap_

Ref<std::unordered_map<std::string, Expr> > freetensor::CompUniqueBoundsPB::Bound::demangleMap_

The documentation for this class was generated from the following files: