Additional constraints on the graph.
More...
#include <dataflow_pattern.h>
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.
◆ 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_state | A 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 |
◆ TVM_DECLARE_BASE_OBJECT_INFO()
tvm::relax::DFConstraintNode::TVM_DECLARE_BASE_OBJECT_INFO |
( |
DFConstraintNode |
, |
|
|
Object |
|
|
) |
| |
◆ _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: