tvm
|
Additional constraints on the graph. More...
#include <dataflow_pattern.h>
Public Member Functions | |
virtual ffi::Array< DFPattern > | GetDependentPatterns () const =0 |
Return the patterns on which the constraint depends. More... | |
virtual std::tuple< PrimExpr, bool > | AsPrimExpr (std::function< ffi::Optional< Var >(const DFPatternNode *)> match_state) const =0 |
Convert the constraint to a PrimExpr. More... | |
TVM_FFI_DECLARE_OBJECT_INFO ("relax.dpl.DFConstraint", DFConstraintNode, Object) | |
Static Public Attributes | |
static constexpr const uint32_t | _type_child_slots = 1 |
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.
|
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.
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. |
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.
|
pure virtual |
Return the patterns on which the constraint depends.
Implemented in tvm::relax::SameShapeConstraintNode.
tvm::relax::DFConstraintNode::TVM_FFI_DECLARE_OBJECT_INFO | ( | "relax.dpl.DFConstraint" | , |
DFConstraintNode | , | ||
Object | |||
) |
|
staticconstexpr |