FreeTensor
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
freetensor::CompTransientBounds< BaseClass > Class Template Reference

#include <comp_transient_bounds.h>

Inheritance diagram for freetensor::CompTransientBounds< BaseClass >:
Inheritance graph
[legend]
Collaboration diagram for freetensor::CompTransientBounds< BaseClass >:
Collaboration graph
[legend]

Public Member Functions

TransientBound transient (const Expr &op) const override
 
const std::vector< Expr > & conds () const override
 
virtual TransientBound transient (const Expr &op) const =0
 
virtual const std::vector< Expr > & conds () const =0
 

Protected Member Functions

BaseClass::StmtRetType visit (const For &op) override
 
BaseClass::StmtRetType visit (const If &op) override
 
BaseClass::StmtRetType visit (const Assert &op) override
 
BaseClass::StmtRetType visit (const Assume &op) override
 

Detailed Description

template<class BaseClass>
class freetensor::CompTransientBounds< BaseClass >

Compute bounds of IDENTICAL INTEGER (sub)expressions AT A POSITION in the AST

E.g.

if (x <= 2) {
... = x + x; // <- AT THIS POSITION
}

At the position above, ALL TWO IDENTICAL EXPRESSIONS x have an upper bound 2

Invoke pass/annotate_conds before this analysis to get better accuracy

Inherit this pass to use it

Member Function Documentation

◆ conds()

template<class BaseClass >
const std::vector< Expr > & freetensor::CompTransientBounds< BaseClass >::conds ( ) const
inlineoverridevirtual

◆ transient()

template<class BaseClass >
TransientBound freetensor::CompTransientBounds< BaseClass >::transient ( const Expr op) const
inlineoverridevirtual

◆ visit() [1/4]

template<class BaseClass >
BaseClass::StmtRetType freetensor::CompTransientBounds< BaseClass >::visit ( const Assert op)
inlineoverrideprotected

◆ visit() [2/4]

template<class BaseClass >
BaseClass::StmtRetType freetensor::CompTransientBounds< BaseClass >::visit ( const Assume op)
inlineoverrideprotected

◆ visit() [3/4]

template<class BaseClass >
BaseClass::StmtRetType freetensor::CompTransientBounds< BaseClass >::visit ( const For op)
inlineoverrideprotected

◆ visit() [4/4]

template<class BaseClass >
BaseClass::StmtRetType freetensor::CompTransientBounds< BaseClass >::visit ( const If op)
inlineoverrideprotected

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