tvm
Public Member Functions | Static Public Attributes | List of all members
tvm::relax::DFConstraintNode Class Referenceabstract

Additional constraints on the graph. More...

#include <dataflow_pattern.h>

Inheritance diagram for tvm::relax::DFConstraintNode:
Collaboration diagram for tvm::relax::DFConstraintNode:

Public Member Functions

virtual Array< DFPatternGetDependentPatterns () const =0
 Return the patterns on which the constraint depends. More...
 
virtual std::tuple< PrimExpr, bool > AsPrimExpr (std::function< Optional< Var >(const DFPatternNode *)> match_state) const =0
 Convert the constraint to a PrimExpr. More...
 
 TVM_DECLARE_BASE_OBJECT_INFO (DFConstraintNode, Object)
 

Static Public Attributes

static constexpr const char * _type_key = "DFConstraintNode"
 
static constexpr const uint32_t _type_child_slots = 1
 

Detailed Description

Additional constraints on the graph.

Unlike PairCons, these may relate nodes that are not directly connected by a DFPattern edge from producer to consumer. For example, constraining the two branches of an elementwise operation to have the same shape.

Member Function Documentation

◆ AsPrimExpr()

virtual std::tuple<PrimExpr, bool> tvm::relax::DFConstraintNode::AsPrimExpr ( std::function< Optional< Var >(const DFPatternNode *)>  match_state) const
pure virtual

Convert the constraint to a PrimExpr.

If the returned boolean parameter is true, then the returned expression is a necessary-and-sufficient condition for evaluating the constraint. In this case, the matcher may either mark the constraint as satisfied (no need to re-check later), or as failed (need to back-track).

If the returned boolean parameter is false, then the returned expression is a necessary-but-not-sufficient condition for evaluating the constraint. In this case, the matcher may start backtracking as a result of a failed condition, but may not mark the constraint as satisfied. This typically occurs when the constraint involves a parameter that the matcher has not yet filled.

Parameters
match_stateA function that can be called to check the current state of the match. The function takes as argument a pattern on which the constraint depends, and returns the relax variable matched by that pattern, or std::nullopt if the pattern has not yet been matched.
Returns
A tuple of PrimExpr and bool. The first element is a necessary condition for the constraint to be satisfied. The second tuple element indicates whether the condition is also sufficient for the constraint to be satisfied.

Implemented in tvm::relax::SameShapeConstraintNode.

◆ GetDependentPatterns()

virtual Array<DFPattern> tvm::relax::DFConstraintNode::GetDependentPatterns ( ) const
pure virtual

Return the patterns on which the constraint depends.

Implemented in tvm::relax::SameShapeConstraintNode.

◆ TVM_DECLARE_BASE_OBJECT_INFO()

tvm::relax::DFConstraintNode::TVM_DECLARE_BASE_OBJECT_INFO ( DFConstraintNode  ,
Object   
)

Member Data Documentation

◆ _type_child_slots

constexpr const uint32_t tvm::relax::DFConstraintNode::_type_child_slots = 1
staticconstexpr

◆ _type_key

constexpr const char* tvm::relax::DFConstraintNode::_type_key = "DFConstraintNode"
staticconstexpr

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