|
| SEqualReducer ()=default |
| default constructor More...
|
|
| SEqualReducer (Handler *handler, bool map_free_vars) |
| Constructor with a specific handler. More...
|
|
bool | operator() (const ObjectRef &lhs, const ObjectRef &rhs) const |
| Reduce condition to comparison of two objects. More...
|
|
bool | DefEqual (const ObjectRef &lhs, const ObjectRef &rhs) |
| Reduce condition to comparison of two definitions, where free vars can be mapped. More...
|
|
template<typename T > |
bool | operator() (const Array< T > &lhs, const Array< T > &rhs) const |
| Reduce condition to comparison of two arrays. More...
|
|
bool | FreeVarEqualImpl (const runtime::Object *lhs, const runtime::Object *rhs) const |
| Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). More...
|
|
Handler * | operator-> () const |
|
bool | operator() (const double &lhs, const double &rhs) const |
|
bool | operator() (const int64_t &lhs, const int64_t &rhs) const |
|
bool | operator() (const uint64_t &lhs, const uint64_t &rhs) const |
|
bool | operator() (const int &lhs, const int &rhs) const |
|
bool | operator() (const bool &lhs, const bool &rhs) const |
|
bool | operator() (const std::string &lhs, const std::string &rhs) const |
|
bool | operator() (const DataType &lhs, const DataType &rhs) const |
|
template<typename ENum , typename = typename std::enable_if<std::is_enum<ENum>::value>::type> |
bool | operator() (const ENum &lhs, const ENum &rhs) const |
|
A Reducer class to reduce the structural equality result of two objects.
The reducer will call the SEqualReduce function of each objects recursively. Importantly, the reducer may not directly use recursive calls to resolve the equality checking. Instead, it can store the necessary equality conditions and check later via an internally managed stack.